Message Boards Message Boards

Rotate and Scale many times an equilateral triangle

Posted 9 years ago

Hello to all i write with the hope that someone can help me to solve the problem currently faced. The problem is the following: taking an equilateral triangle, i must make another triangle that is 75% of the first and also rotate for example 6 or 15 degrees and put them in the same chart, this procedure must be done several times depending on the user's desire. I've tried to rotate and scale but without success, I hope someone has some idea in this regard would be grateful too.

POSTED BY: Luis Ledesma
8 Replies
Posted 9 years ago

Many thanks for helping me to solve this problem, the truth I saw that evil was facing this problem but with the help of the community vi how to solve it, I have no words to thank Dent de Lion which has invested too much of their time in helping me and share their solutions

Luis Ledesma

POSTED BY: Luis Ledesma

Have a helper function

(* helpers *)
Clear[closeL]
closeL[l_List] := Join[l, {First[l]}]

an equilateral triangle is easiest generated from the solution of the cyclotomic equation of third degree

In[24]:= (* equilateral triangle *)
Solve[x^3 == 1, x]
Out[24]= {{x -> 1}, {x -> -(-1)^(1/3)}, {x -> (-1)^(2/3)}}

rotation by 30 Degree is multiplication by Exp[Pi I/6], so your first triangle is just:

  (* rotation by 30 Degree is multiplication by Exp[Pi I/6], so the first triangle is, keeping the zero in the center for practical reasons:*)
    Graphics[Line[closeL[{Re[#], Im[#]} & /@ (Exp[Pi I/2] Last[Last[#]] & /@ Solve[x^3 == 1, x])]]]

to get the solution of the cyclotomic equation upright, i.e. with one horizontal edge. How to proceed:

  • shrink the roots by the right value (9/16)
  • rotate the roots by multiplication with another Exp[Pi I/6]
  • continue until you did that 13 times
  • plot all solutions collected as shown above
POSTED BY: Udo Krause

Given as Lines it is

Graphics[Table[
  Line[closeL[{Re[#], Im[#]} & /@ (Exp[Pi I (n/6 + 1/2)] (9/16)^(n/2) Last[
          Last[#]] & /@ Solve[x^3 == 1, x])]], {n, 0, 12}]]

ledesmaRotaTri

POSTED BY: Udo Krause

Done with a Polygon it's

Graphics[{EdgeForm[Thick], White, 
  Table[Polygon[{Re[#], 
       Im[#]} & /@ (Exp[Pi I (n/6 + 1/2)] (9/16)^(n/2) Last[
          Last[#]] & /@ Solve[x^3 == 1, x])], {n, 0, 12}]}]

with other words

ledesmaRotaTriPolygon

Please note that in contrast to your reference document

ledesmaRef

the third triangle does intersect the horizontal edge of the first one. Looking at the picture of the reference document (as shown above) it seems unlikely, that in a symmetrical situation the third triangle scratches 2 edges of first triangle, but the third one - not. Why should this hold? Was the reference document produced to let the learners grow on tackling inaccuracies?

POSTED BY: Udo Krause
Posted 9 years ago

In the file pdf attached explained the steps, please see it. I think the final result is something like this:

final picture

I hope someone can help me.

Attachments:
POSTED BY: Luis Ledesma
Posted 9 years ago

I'm sorry, Luis, but I don't understand what you are trying to do. --David

POSTED BY: David Keith
Posted 9 years ago

Many thaks for you response David keith, but I need something like this: only put the example with three triangles but if going by turning each triangle "x" degree should have more but I can not do even with that amount of triangles,do you have your ideas on how to do that? I'm still trying without success, thanks in advance

example

POSTED BY: Luis Ledesma
Posted 9 years ago

Hi Luis, Maybe this?

t1 = Triangle[{{-1, 0}, {0, Sqrt[2]}, {1, 0}}];

Graphics[{Red, t1, Green, Scale[Rotate[t1, 6 Degree], .75]}]

enter image description here

Or even

Graphics[{Red, t1, Green, 
  Translate[Scale[Rotate[t1, 6 Degree], .75], {2, 0}]}]

enter image description here

POSTED BY: David Keith
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract