I'm following


 Next, we need to convert their forces to horizontal and vertical components. Let's use k for Kim's vector and n for Noah's vector.

k = <30, 130o> = <30cos130o, 30sin130o> = <-19.3, 23.0>.
n = <40, 65o> = <40cos65o, 40sin65o> = <16.9, 36.3>. 

(The lower case o is rendered as a degree symbol) To get the X part of Kim's vector, I run 30 * Math.cos(130), I get -11.018739913640896, which is not -19.3. To get the Y part of Kim's vector, I run 30 * Math.sin(130) which is -27.903178505602853, which is not the 23.0 listed by the example.

Where did I go wrong?


In Javascript, as usual, Math.sin and Math.cos want the angle parameter in radians. You are feeding it degrees, and that's why your results are off.

You probably want to introduce an utility function toRadians, which takes in the angle in degrees and returns the angle in radians.

function toRadians(angle) {
    return (angle * Math.PI) / 180.0; 

You can find references all over the internet about angle conversions, but that's how it's done.

Now, if you execute Math.cos(toRadians(130)) * 30, you get about -19.3, which seems to be what you were looking for.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.