If you're seeing this message, it means we're having trouble loading external resources on our website.

If you're behind a web filter, please make sure that the domains *.kastatic.org and *.kasandbox.org are unblocked.

Main content


I think it may be time. We’ve looked at angles, we’ve spun an object. It’s time for: soh cah toa. Yes, soh cah toa. This seemingly nonsensical word is actually the foundation for a lot of computer graphics work. A basic understanding of trigonometry is essential if you want to calculate an angle, figure out the distance between points, work with circles, arcs, or lines. And soh cah toa is a mnemonic device (albeit a somewhat absurd one) for what the trigonometric functions sine, cosine, and tangent mean.
Diagram of a triangle
  • soh: sine = opposite / hypotenuse
  • cah: cosine = adjacent / hypotenuse
  • toa: tangent = opposite / adjacent
Take a look at the above diagram again. There’s no need to memorize it, but make sure you feel comfortable with it. Draw it again yourself. Now let’s draw it a slightly different way:
Diagram of triangle using vectors
See how we create a right triangle out of a vector? The vector arrow itself is the hypotenuse and the components of the vector (x and y) are the sides of the triangle. The angle is an additional means for specifying the vector’s direction (or “heading”).
Because the trigonometric functions allow us to establish a relationship between the components of a vector and its direction + magnitude, they will prove very useful throughout this course. We’ll begin by looking at an example that requires the tangent function.

This "Natural Simulations" course is a derivative of "The Nature of Code" by Daniel Shiffman, used under a Creative Commons Attribution-NonCommercial 3.0 Unported License.

Want to join the conversation?

  • blobby green style avatar for user Zachary Authier
    what do i do when I have to find a side, i know how to do angle and all that, but its really difficult to know when to do 4/cos(23 or 6xsin(9
    (4 votes)
    Default Khan Academy avatar avatar for user
  • duskpin ultimate style avatar for user michelle.ngai
    I don't get still what's a soh, cah, and toa.
    (2 votes)
    Default Khan Academy avatar avatar for user
  • winston default style avatar for user Kakarot
    Can someone dumb down trigonometry for a 7th grader so i can do this next thing. If you don't make my head explode you did good.
    (1 vote)
    Default Khan Academy avatar avatar for user
    • aqualine ultimate style avatar for user AD Baker
      Trigonometry is the branch of Mathematics that studies angles. We look at the relationships among the angles and sides of triangles. We can use angles to determine distances (lengths) or distances to determine angles.

      You don't need to know a whole lot about Trig to complete this course. If you can grasp this article, you should be just fine.

      If you understand that right angles are important and that we can draw a right angle based on a line (or vector), like the last image in this article, you understand most of what you need.

      The other thing that you need to know is the relationships among the sides of a triangle. These are shown in the first image in the article. You can always reference this article, so you don't need to memorize this - just be aware that it is here, in case you need to reference it.
      (4 votes)
  • piceratops tree style avatar for user Swooshy
    I answer one question on the quiz one way, then another triangle comes up. Same shape, so I assume the adjacent, opposite, and hypotenuse are located on the same sides, but when I go to do it, it says I'm wrong. How do you determine which is the hypotenuse, adjacent and opposite?
    (2 votes)
    Default Khan Academy avatar avatar for user
    • leaf green style avatar for user mmccarthy21
      No, even if the shapes are the same, the angle is different therefore the opposite, hypotenuse, and adjancents are different as well.
      Opposite: opposite of the angle
      Hypotenuse: the longest side (so if its the same shape this should be the same)
      Adjacent: kind of next to the angle, the nearest one
      Hope I helped!
      (2 votes)
  • aqualine ultimate style avatar for user Aylu Naser
    i need a tip what if they gave me two angles but no sides then what do i use
    (2 votes)
    Default Khan Academy avatar avatar for user
  • leaf orange style avatar for user Rashad
    I learned sin cos and tan, but I don't understand how to use it in programming. I saw your Hypnoswirl program but I did not understand how sin and cos helped to make the program.
    (1 vote)
    Default Khan Academy avatar avatar for user
    • male robot hal style avatar for user Ron Jensen
      If you have a PVector, you can use the tangent [atan2(x,y)] function to find the angle it is pointing in. If you have an angle, you can use cos() and sin() functions to find values for x and y. If you need to model anything periodic sin and cos are useful.

      Be aware, though, processingjs uses a weird convention of +Y being down instead of up. That makes everything rotate backwards.
      (3 votes)
  • hopper happy style avatar for user Jaguirre321
    so are you basiclly trying to find the missing side?
    (1 vote)
    Default Khan Academy avatar avatar for user
    • spunky sam blue style avatar for user Dalendrion
      If you know two sides of a right triangle, you can find the missing side with the Pythagorean Theorem.

      But if you know a side and an angle (other than the right angle), then you can use tan, cos or sin to find the other sides.
      So yeah, you're right!
      You can also work in the other direction: you can find the angles if you know two sides.
      (2 votes)
  • starky sapling style avatar for user 4x² (soli Deo gloria)
    I know how to use the tan() function, but what if I need to take the anti-tan or opposite tan of something. Is there a function for that? O.o
    (1 vote)
    Default Khan Academy avatar avatar for user
    • old spice man green style avatar for user Bob Lyon
      atan is the anti-tangent function. Be aware that most people find atan2 is more desirable than atan. While atan only returns angles between -π/2 (-90°) and +π/2 (90°), atan2 returns all possible values, -π (-180°) to +π/2 (180°).
      (1 vote)
  • starky seedling style avatar for user Cyberneticbacon
    Heres my code... how would i find the angle of the red dot, to the center, to the white dot?

    var x1 = random(99, 301);
    var y1 = random(99, 301);
    var x2 = random(99, 301);
    var y2 = random(99, 301);
    var t = dist(mouseX, mouseY, 200, 200);
    var di1 = dist(x1, y1, 200, 200);
    var di2 = dist(x2, y2, 200, 200);
    draw = function() {
    background(255, 255, 255);
    fill(0, 0, 0);
    di1 = round(dist(x1, y1, 200, 200));
    ellipse(200, 200, 280, 280);
    fill(255, 0, 0);
    ellipse(x1, y1, 20, 20);
    fill(255, 255, 255);
    ellipse(x2, y2, 20, 20);
    fill(0, 0, 0);
    text(di1, 30, 30);
    if(di1 !== 140){
    x1 = random(99, 301);
    y1 = random(99, 301);

    (1 vote)
    Default Khan Academy avatar avatar for user
  • male robot hal style avatar for user luke
    (1 vote)
    Default Khan Academy avatar avatar for user