Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 13. 02. 2016 19:37

xlnc
Zelenáč
Příspěvky: 19
Reputace:   
 

Translace a rotace trochu jinak

Omlouvám se všem za "zdržování". Jsem už nějaký pátek mimo školu.

Úloha: Rotace orientované úsečky (vektoru konstantní délky) okolo jejího počátku (třeba klasická hodinová ručička)

Zadání:

Souřadný systém začíná v levém horním rohu. Doprava +x, dolů +y

Počátek a konec úsečky definuji při vytváření, pak už z VBA nedostanu, co je počátek a co konec (ale rotaci budu řídit jen já). Každopádně souřadnice počátku (středu rotace) budou dány a neměnné.

Umístění úsečky definuje VBA levým horním rohem (top, left) a šířkou a výškou (width, height). De facto prostě klasické dva body, druhý dopočítávaný. Tyto vlastnosti mohu měnit.

Rotaci Excel umí jen okolo středu úsečky (úhel ve stupních, ale to není podstatné). A v tom je celý zakopaný pes. S touto vlastností (metodou) také mohu pracovat.

Jak tedy nadefinovat (vypočítávat otočení úsečky okolo jejího počátku třeba o 45°? Samozřejmě mi jde o univerzální postup (plus minus uhel určuje směr CW, CCW, všechny čtyři kvadranty (počátek = počátek úsečky).

Bohužel mi nestačí obecná odpověď "podívej se na matici translace a rotace". Jednoduše mi to nejde a nejde a už z toho blbnu.

Děkuju.

Offline

 

#2 13. 02. 2016 22:02

check_drummer
Příspěvky: 5509
Reputace:   106 
 

Re: Translace a rotace trochu jinak

↑ xlnc:
Ahoj, nestačilo by vzít úsečku dvakrát delší? A pak tedy rotace kolem středu té větší úsečky bude rotací okolo počátečního bodu té původní úsečky. Přesněji - máš úsečku AB a chceš rotovat kolem A, pak zvolíš bod C tak, že A je střed CB a budeš rotovat CB kolem jejího středu.


"Máte úhel beta." "No to nemám."

Offline

 

#3 13. 02. 2016 22:06 — Editoval xlnc (13. 02. 2016 22:17)

xlnc
Zelenáč
Příspěvky: 19
Reputace:   
 

Re: Translace a rotace trochu jinak

↑ check_drummer:

Taky mě to napadlo, ale nevím, jestli to riskovat. V případě, že je úsečka příliš blízko počátku souřadného systému (v extrému třeba [0,0], [100,100], neprotáhnu ji do "mínusu". Jistě, takhle narvanou do rohu bych ji ani neotočil. Nezavrhuju to úplně, teoreticky počítat s prostorem musím, tudíž by asi stačilo nastavit ji ve spodním bodě (prostě v počátku...) a točit za střed po sloučení. Popravdě se mi ale ani nechce vykreslovat tu pomocnou úsečku.

Offline

 

#4 13. 02. 2016 22:10

xlnc
Zelenáč
Příspěvky: 19
Reputace:   
 

Re: Translace a rotace trochu jinak

Je tu varianta vykreslit úsečku znova, ale za předpokladu že je to složitější objekt (pořád úsečka, ale s vlastnostmi tloušťky, barvy, značky v počátku, typu šipky na konci,  ...), tak je to otrava.

Já chápu, že musím postavit matice translace a rotace, ale postě mi to nejde přes všechny kvadranty, znaménka úhlu, ...

Offline

 

#5 14. 02. 2016 18:54

check_drummer
Příspěvky: 5509
Reputace:   106 
 

Re: Translace a rotace trochu jinak

↑ xlnc:
Ale vždyť tu pomocnou úsečku vykreslovat nemusíš ne? A ony jsou zakázány záporné souřadnice bodů? Tak bys to musel posunout "do kladna" (ne do města) a pak po rotaci zase zpět.


"Máte úhel beta." "No to nemám."

Offline

 

#6 14. 02. 2016 18:56

xlnc
Zelenáč
Příspěvky: 19
Reputace:   
 

Re: Translace a rotace trochu jinak

Jo ty myslíš prodloužit stávající... a pak vrátit na původní délku?

Offline

 

#7 14. 02. 2016 19:11

check_drummer
Příspěvky: 5509
Reputace:   106 
 

Re: Translace a rotace trochu jinak

↑ xlnc:
Vyjde-li nějaký bod v CB záporný, posuň celou úsečku o vhodný vektor v tak, aby byly všechny body kladné, pak ji otoč a posuň o -v zpět.


"Máte úhel beta." "No to nemám."

Offline

 

#8 14. 02. 2016 19:34

xlnc
Zelenáč
Příspěvky: 19
Reputace:   
 

Re: Translace a rotace trochu jinak

Vyzkouším, zatím díky za tvůj víkendový čas..

Offline

 

#9 15. 02. 2016 11:02 — Editoval Rumburak (15. 02. 2016 11:43)

Rumburak
Místo: Praha
Příspěvky: 8691
Reputace:   502 
 

Re: Translace a rotace trochu jinak

↑ xlnc:

Ahoj.

Dobrý početní aparát pro translaci  i rotaci  v rovině poskytuje teorie komplexních čísel.

Translací bodu $A = [a_1 , a_2] = a_1 + a_2 i$ vektorem $\vec{u} = (u_1 , u_2) = u_1 + u_2 i$
se dostaneme do bodu   $B = A + \vec{u} = (a_1 + a_2 i) + (u_1 + u_2 i) = ... $.

Rotací výše uvedeného bodu $A$ okolo počátku $P = 0 = 0 + 0i$ o úhel $\varphi$ dostaneme bod

         $F = (a_1 + a_2 i)(\cos \varphi  +  i \sin\varphi) = ... $ .

Rotaci bodu $A$ okolo obecného středu $S$ provádíme takto:

1.  vezmeme translaci $f$ , při které je $f(S) = P$ ;

2.  o daný úhel otočíme bod $f(A)$, avšak okolo středu $P$ -  výsledkem této operace bude jistý bod $X$ ;

3.  nyní najdeme bod $C = f^{-1}(X)$, což je už konečný výsledek.

Offline

 

#10 15. 02. 2016 11:10

xlnc
Zelenáč
Příspěvky: 19
Reputace:   
 

Re: Translace a rotace trochu jinak

Juknu na to malinko později (a zavařím se :-)) Děkuju.

Offline

 

#11 16. 02. 2016 13:27

Eratosthenes
Příspěvky: 3111
Reputace:   140 
 

Re: Translace a rotace trochu jinak


Budoucnost patří aluminiu.

Offline

 

#12 16. 02. 2016 22:27

xlnc
Zelenáč
Příspěvky: 19
Reputace:   
 

Re: Translace a rotace trochu jinak

I tobě díky za odpověď. Upřímně, nevím, co představuje ten "třetí rozměr" - jakoby nějaký jednotkový vektor? Prostě jsem ze školy dlouho a starej a pitomej :-)

A malinká podotázka - mohu vědět, v čem byl nakreslen obrázek? Něco jako LaTex? Občas potřebuju znázornit jednodušší věci - množiny, poloroviny, ... Asi nejvíc mi sedla na podobné věci GeoGebra.

Offline

 

#13 17. 02. 2016 17:48

Eratosthenes
Příspěvky: 3111
Reputace:   140 
 

Re: Translace a rotace trochu jinak

↑ xlnc:

takto relativně jednoduše to vypadá díky tomu, že se jedná o transformaci v tzv. projektivní rovině, kde má každý bod tři souřadnice. Velmi jednoduše řečeno: bod v projektivní rovině je "směr", tj. libovolný nenulový násobek jistého (nenulového) vektoru. Je-li ten násobek vybrán tak, že třetí souřadnice je jednička, pak první dvě souřadnice jsou klasické kartézské souřadnice v běžné eukleidovské rovině. Zcela prakticky: První dva řádky ve všech maticích jsou kartézské souřadnice a ty třetí řádky z nul a jedniček jsou tam proto, aby to všechno fungovalo jako násobení matic.

PS: Obrázek je kreslený v Rhinoceros. Je to prostorový modelář (bohužel není zadarmo).


Budoucnost patří aluminiu.

Offline

 

#14 17. 02. 2016 18:46

xlnc
Zelenáč
Příspěvky: 19
Reputace:   
 

Re: Translace a rotace trochu jinak

Rhino jsem kdysi zkoušel...

Pro tuto chvíli děkuju všem zúčastněným za čas a práci. Musím se do toho ponořit.

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson