1
$\begingroup$

I am trying to solve for a point on a triangle that rotates around a fixed point. For ease of calculation this point is at X: 0 Y: 0

enter image description here

The length and width of the triangle are always fixed, the only thing that changes is the rotation angle. How can I solve for X: ??? and Y: ??? taking into account the rotation angle?

I am trying to place a 2d rendered object in Java so I need to break the formula down to it's base elements so I can put it into code and have the formula spit out X and Y coordinates

The known variables are all listed in the pictures. The angle of the triangle, the length & width. Anything else that is needed to find the ??? must be calculated first I guess.

Please don't just link wiki pages. I have read them. I don't understand them. Hence why I am asking for help walking through the solution.

Thank you!

$\endgroup$
  • $\begingroup$ Which parameters do you want to give your triangle? For example, do you want to give it the current angle, two sides and the enclosed angle between those two sides? $\endgroup$ – Imago Dec 21 '15 at 13:58
  • $\begingroup$ Multiply the coordinates with a rotation matrix en.m.wikipedia.org/wiki/Rotation_matrix $\endgroup$ – David Quinn Dec 21 '15 at 14:25
1
$\begingroup$

Imagine the hypotenuse of your triangle is the radius of a circle for which the length can be calculated with the Pythagorean theorem:

$$ H = \sqrt{L^2 + W^2} \\ $$

Then, instead of calculating the angle between the negative $y$-axis and the hypotenuse as drawn, imagine the initial angle of your hypotenuse is the angle between the $x$-axis and the hypotenuse which can be calculated with the $\tan$ function and its inverse $\arctan$ function:

$$ \tan \theta = \frac{\textrm{opposite}}{\textrm{adjacent}} = \frac{L}{W} \\ \theta = \arctan \frac{L}{W} \\ $$

Finally, the coordinates can be calculated by multiplying the hypotenuse ($H$) with the appropriate trigonometric function ($\sin$ or $\cos$) applied to the complete angle ($\theta + Angle$) which can then be simplified:

$$ X = H \cos(\theta + Angle) = W \cos(Angle) - L \sin(Angle) \\ Y = H \sin(\theta + Angle) = L \cos(Angle) + W \sin(Angle) \\ $$

Let's try these equations with the values from your first triangle where $Angle$ is $0$:

$$ X = 3 \cos(0) - (-5) \sin(0) = 3 \\ Y = (-5) \cos(0) + 3 \sin(0) = -5 \\ $$

Now let's try again with the values from your second triangle where $Angle$ is $35^\circ$ converted to radians:

$$ X = 3 \cos(\frac{35 \pi}{180}) - (-5) \sin(\frac{35 \pi}{180}) \approx 5.33 \\ Y = (-5) \cos(\frac{35 \pi}{180}) + 3 \sin(\frac{35 \pi}{180}) \approx -2.38 \\ $$

$\endgroup$
0
$\begingroup$

Cr3 is correct but I found a bit smaller way to do it from a different help forums. Thank you all

x′= Width * cos(Angle) - Length * sin(Angle)

y′= Width * sin(Angle) + Length * cos(Angle)

x′=3cos(35)+5sin(35)≈5.33

y′=3sin(35)−5cos(35)≈−2.38

$\endgroup$
  • $\begingroup$ If it looks like your answer is a bit smaller because it uses degrees ($35^\circ$) whereas my answer uses radians ($\frac{35\pi}{180}$), please note that the Math.cos function in Java expects an angle parameter in radians. $\endgroup$ – cr3 Dec 23 '15 at 19:19

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.