Hur löser jag detta? Låt d vara distansen (5 i exemplet), och v vinkeln (måste nog vara i radianer till sin och cos). Tack! Distansen verkar bli rätt men vinkeln får jag inte att bli rätt. Nu flyttar den sig snett ner åt vänster när jag anger 90 grader (ca 125 grader från topp). Trigonometrifunktionerna brukar inte ta argumentet i grader utan i ett annat vinkelmått, kallat radianer. På ett varv går 2pi radianer. Om v är vinkeln i grader skall du därför skicka in pi*v/180 som argument. Hej igen, av olika anledningar bestämde jag mig för att använda radianer trots allt men det vill sig inte alls. Jag testade att på google skriva sin(1pi) och då ger den svaret 0, varför får jag ett annat svar från javascript?Flytta objekt
Jag har ett objekt på en 2D yta, objektet har 2 värden, hastighet och vinkel.
Vinkeln kan ha ett värde mellan 1 och 360 (där 360 är rakt upp, 90 rakt åt höger osv.) och sträcka mellan 1 och 10.
Objektet har också en x och y position.
Nu vill jag flytta objektet x steg åt det håll vinkeln har.
Om jag t.ex. har ett objekt på position x:20 och y:30 och vinkeln är 90 och sträckan 5.
Då ska den nya positionen bli x:25 och y:30
Men hur löser jag det här matematiskt/kodmässigt?Sv: Flytta objekt
Då skall du utföra detta:
x += d * cos(v)
y += d * sin(v)Sv:Flytta objekt
Vad betyder att den ska vara i radianer till sin och cos?Sv: Flytta objekt
http://sv.wikipedia.org/wiki/RadianSv:Flytta objekt
var speed = 4;
var direction = 1;
var movex = speed * Math.cos(direction * Math.PI);
var movey = speed * Math.sin(direction * Math.PI);
Nu tycker man ju att antingen movex eller movey borde bli 0 eftersom objektet bara ska färdas åt ett håll, men så verkar det inte bli.
movex blir helt korrekt -4
movey blir däremot 4.898587196589413e-16
Tänkter jag fel?
Sv: Flytta objekt