Két csúcs koordinátái alapján hogyan számítható ki egy tetszőleges helyzetű szabályos háromszög harmadik csúcsának koordinátái?
Adott egy tetszőleges helyzetű szakasz, a feladat ezt "kiegészíteni" egy szabályos háromszöggé, két csúcs koordinátáit ismerjük így, ezek a szakasz két végpontja.
X és Y tengelyen is a pozitív félsíkban vagyunk.
Amikor a szakasz párhuzamos az Y tengellyel és a harmadik csúcsot a szakaszhoz képest jobbra akarjuk meghatározni, akkor a harmadik csúcs távolságát megkapjuk a
✓(a^2 - (a / 2)^2)
képletből, ahol 'a' a szakasz hossza.
Így a harmadik csúcs X koordinátáját megkapjuk, ha ezt a távolságot hozzáadjuk a szakasz bármely végpontjának X koordinátájához.
A harmadik csúcs "vízszintesen" a szakasz felezőpontjára esik, így az Y koordinátáját megkapjuk, ha az X tengelyhez közelebbi csúcs Y koordinátájához hozzájuk a szakasz hosszának felét, vagy a távolabbiéból kivonjuk.
Ezt nem tudom általánosítani bármely szakaszra (azokra, amelyek nem párhuzamosak az X vagy az Y tengellyel).
A kérdésem az, hogy hogyan lehet általánosan meghatározni a 3. csúcs koordinátáit?
Processing-ben kell ezt megvalósítanom.
vektorokkal érdemes gondolkozni.
Ha van két pontot A(ax, ay) és B(bx,by).
A szakasz felezőpontja F( (ax+bx)/2, (ay+by)/2)
Akkor kiszámolod AB vektort (ax-bx, ay-by)
Az FC vektor ennek p90 fokos elforgatottja, (px,py) 90 fokkal elforgatjuk úgy, hogy megcseréljük a két koordinátát és az egyiket -1-el szorozzuk. 90 fokkal forgathatjuk balra vagy jobbra a vektort, ezért a -1-es szorzás kétféle, vagy x vagy y-ra vonatkozik.
Tehát AB vektornak kiszámolod a kétféle elforgatását.
Ez egybeesik FC vektorral. FC vektort még be kell szorozni a kívánt hosszal.
A magasság hossza gyök(3)/2*a
Tehát FC vektort gyök(3)/2-vel kell szorozni így megkapod m' vektorokat.
F+m' adja a C csúcsot.
Akárhogy is áll az AB oldal.
Szia.
Szerintem ez egy pont egy másik pont (pl középpont) körüli elforgatását jelenti.
Mivel szabályos háromszögről van szó ezért az elforgatás az 60 fokos (vagy pi/3 radiános) lesz.
Ehhez a következő képletet használhatod( forrás : [link] ):
eredeti pont: (x,y)
középpont: (o_x,o_y)
elforgatott pont: (x^,y^)
x^ := o_x + (x-o_x)*cos(alfa) - (y-o_y)*sin(alfa)
y^ := o_y + (x-o_x)*sin(alfa) + (y-o_y)*cos(alfa)
A középpont helyett az egyik csúcs koordinátáit használod, míg a másik csúcsot forgatod. Ezt megcsinálod mindkét csúccsal vagy csak ez egyik csúccsal, de ott mindkét irányban (+60 és -60 fokos forgatás). Igy megkapod a két darab háromszög harmadik csúcsának koordinátáit (Mivel egy szakasz két szabályos háromszögnek lehet az egyik oldala).
Sok sikert. Üdv.
Elforgatod a szakaszt az egyik pont körül 60 fokkal és mínusz 60 fokkal.
Vagy mindkét pont körül 60-60 fokkal.
Egyszerű mátrixműveletek.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!