Math.atan2 vs. (cos, sin)

Onko seuraava funktio "identtinen"

function id(p) {
var ang = Math.atan2(p.x, p.y);
var r = Math.sqrt( p.x**2 p.y**2 );
return {x: r*Math.cos(ang), y: r*Math.sin(ang)};
}

Ei ole, miten siitä atan2kkosesta saa pisteen takas? Pitääkö lisätä PI/4? Sit taas toiset pisteet menee väärin.

/* tässä olis missä oikeastaan yritän käyttää, mut en ymmärrä miks tää ei voi yksinkertasesti mulle selvitä että miten nää kulmat menee. (cos, sin) on yksikköympyrä ihan oikein (1, 0):sta vastapäivään. Mutta
Math.atan2(1,0) == Math.PI/4.
Jos siitä vähentää

Olkoon meillä keskipiste C=(cx, cy) ja sitten piste A = (ax, ay). Halutaan pyöräyttää A:ta kulman theta (radiaaneja) C:n ympäri.

function rot(a, c, theta) {

var r = Math.sqrt( (a.x-c.x)**2 (a.y-c.y)**2 );
var startAng = Math.atan2(a.x-c.x, a.y-c.y); // -Math.PI/4 ???
return { x: c.x r*Math.cos(startAng theta), y: c.y r*Math.sin(startAng theta) };
}

console.log( rot({x: 2, y:2}, {x:1, y:1}, Math.PI/4) )

*/

10

207

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Turbo-Urpo1

      Nämä Sini, Kosini ja Tangenttit ja kaikki muutkin trigonometria funktiot on syvältä, en niitä ole koskaan ymmärtänyt, jo kouluaikaan ne oli yhtä painajaista, eikä tilanne ole yhtään muuttunut.

    • Toi mun sotku jäi jotenkin kesken
      Jos siitä vähentää... siis sen PI/4:n (ja mistä hemmetistä tää luku tulee?), niin ei se toimi sittenkään

      Onko tämä funktio oikein (eli pitäisi kiertää pistettä p keskipisteen c ympäri kulman ang verran):

      var rotPoint = function(p, ang, c={x:0, y:0}) {
      var x = p.x - c.x;
      var y = p.y - c.y;
      var cosA = Math.cos(ang);
      var sinA = Math.sin(ang);
      return { x: cosA*x - sinA*y c.x, y: sinA*x cosA*y c.y }
      };

      Eli siirretään ensin origoon, sitten kierto (matriisilaskuna) ja sitten siirto takaisin.
      Tässähän ei atan2:sta tarvita, mutta silti jäi mietityttämään, että minkä kulman se antaa

      No, nythän se antaakin

      Math.atan2(1,0)
      1.5707963267948966

      Miten lienen saanut PI/4 viime kerralla?

      • Mä pistin varmaan Math.atan, eli siitä jäi se kakkonen pois ja se laski yksargumenttisa tietenkin Math.atan(1):n joka on neljäsosa pii.

        No nyt selkiskii docseista:
        The Math.atan2() method returns a numeric value between -π and π representing the angle theta of an (x, y) point. This is the counterclockwise angle, measured in radians, between the positive X axis, and the point (x, y). Note that the arguments to this function pass the y-coordinate first and the x-coordinate second.

        Eli y-koordinaatti ensin, miksi helvetissä?!?!


      • Turbo-Urpo1

        Mikähän tuossakin viestissä muka oli sääntöjen vastaista, pelkkää myötä elämistä minkkilaukun ongelman kanssa. Tätä oli jo vaikea käsittää.

        Mikkilaukku: Otan osaa, vaikken voikkaan mitenkään auttaa.

        Vieläköhän tästäkin löytyy jotain sääntöjen vastaista.


    • Turbo-Urpo1

      Nämä minkkilaukun ongelmat ovat aina näin teknisiä juttuja, jotta niihin ei kukaan osaa oikeesti ratkaisua kertoa, huumorilla kuittasin, ja ylläpito poisti käsittämättömästä syystä.

      Olis kyllä hiton mukava tietää mikä siinä oli vikana.

    • Turbo-Urpo1

      Hakkumiset, mimittelyt ja sen semmoset roikkuu kyllä ketjuissa, sitten hyvä tahtoiset osan otot poistetaan, mikä siellä päässä oikein mättää.

    • Turbo-Urpo1

      Tuli tuossa mieleen että jos se huumori sattu arkaan paikkaan, ja sinä mikkilaukku poistatit sen viestin, niin ihan varoilta teen julkisen anteeksi pyynnön. En koskaan ole pahalla ajatellut sellaista joka noinkin paljon antaa tälle sivustolle kuin sinäkin olet antanut. Mikäli vastaisuudessa jotain viestiäsi kommentoin, älä ihmeessä ajattele että teen sen ilkeyttäni. Arvostatan suunnattomasti panostasi, ja pidän pouliasi ilkeilijöitä vastaan noustessa.

      Vaikken uskokkaan sinun sitä poistoa vaatineen, niin

      Olen hyvin pahoillani väärinkäsityksestä, ainoastaan hyvän mielen tuottamista tavoittelin. Minä vittuilen vain vittuilijoille jota ovat sen ansainneet.

    • jotainkirjaimia

      Jaa heippa minkkilaukku aina kaikkien rakastama ohjelmoija... olin mökillä, kaikenlaista... uudestaankin joskus lähden lomille, toivottavasti ennen jouluakin.

      Tämä kysymys, perustuu siihen että onko 0=1, onko nolla 0=0...

      Tämä kaataa tietystikin Einsteinin teorin kaikesta jos joku todistaa matemaattisesti sekä fyysisesti että 0=?

      Joka onkin fakta tietysti, kukaan ei tiedä nollan arvoa, joten nollan arvon voi olettaa vaikka olevan 3, kokonaiskuluna. Kuten äärettömyyden arvonkin voi jokainen itse määritellä.

      Jospa sovitaan että 'ääretön' onkin lukuarvontaan 17?

      Matematiikka ja fysiikahan ovat vain täynnä "sovittuja sääntöjä".

    • jotainkirjaimia

      ..jatkan vielä sitten eli yhtälössä silloin nolla ja ääretön olisivat kumpikin 17 (vuotiaita, en sitä tarkoita)... vaan että nollan tilalle yhtälöön 17.

    Ketjusta on poistettu 1 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Miksi miehet kohtelevat mua huonosti

      Oon nyt tapaillut kolmea ihmistä. Ensimmäisen kanssa nähtiin kolme kertaa, ja meidän oli tarkoitus mennä leffaan tiettyn
      Sinkut
      162
      2610
    2. Minä haluun vaa oikeesti kuulla

      Että sulla on kaikki hyvin. Ihan oikeasti haluan. Ehkä meitä ei sit ollu tarkotettu yhteen, mut oot mulle äärettömän tär
      Ikävä
      60
      1218
    3. Voisiko kaivattusi tehdä jotain mitä

      Et voisi antaa anteeksi
      Ikävä
      50
      906
    4. Ajattelen sinua

      aamuin, päivin, illoin. Toisinaan en yölläkään saa nukutuksi, kun pyörit mielessäni. Olemme molemmat aikuisia, etkä tiet
      Ikävä
      32
      801
    5. Pariisin olympialaisissa miesnyrkkeilijä löi naisnyrkkeilijän 46 sekunnissa keskeytyskuntoon

      Algerian kohunyrkkeilijä nousi kehään – vastustaja luovutti hetkessä ja murtui itkuun https://www.is.fi/urheilu/art-2000
      Maailman menoa
      85
      755
    6. Onko sulla mitään todisteita

      Että olisin ihastunut sinuun?
      Ikävä
      48
      745
    7. Melko hyvin tunnen jo hänet

      Hän ei ole sopiva. Jotain hyvää tässä palstan seuraamisessa on ollut. Omien ajatusten ja tunteiden jäsentämisen lisäksi
      Ikävä
      67
      742
    8. Olet mulle koko maailma

      Voisin vaikka luopua ihan kaikesta, jos sinut saisin.
      Ikävä
      39
      690
    9. Pim pom, Ovikello soi. :D

      Mitä tekisit jos kaivattusi ilmestyisi ovesi taakse?
      Ikävä
      57
      687
    10. Tänään (1.8) on maailman ylikulutuspäivä

      Vuonna 1970 maailman ylikulutuspäivä oli joulukuun 23. päivä. Vuosituhannen alussa vuonna 2000 se osui lokakuun 4. päivä
      Maailman menoa
      68
      686
    Aihe