малко геометрийка :)
35 отговора
1331 прегледа
малко геометрийка :)
Трябват ми алгоритъмчета за въртене на обект около точка и за мащабиране пак около точка (3-мерно). Мащабирането е горе-долу лесно ама аз все пак да попитам. И да напомня - ще се радвам на алгоритми, не на теория :)
Я вышел им наперерез...
Я вышел им наперерез...
Re: малко геометрийка :)
Момент само
.
Какво значи "мащабиране около точка"? Хомотетия ли?
А въртенето... Как се задава ъгъла?
Nihil tam munitum quod non expugnari pecuna possit
Какво значи "мащабиране около точка"? Хомотетия ли?
А въртенето... Как се задава ъгъла?
Nihil tam munitum quod non expugnari pecuna possit
Re: малко геометрийка !?!
Много си бос, с извинение. Въртене в 3D може да става само около права. За мащабирането Драко е прав.
А сега на тема въртене около права. Това е частен случай на трансформация. Мащабирането, проекциите, също са частен случай на трансформация. Описва се с матрица 4х4 в хомогенни координати. Пише го във всяка аналитична геометрия. Сега идва въпросът: какво ще трансформираш? Точка, права, равнина, повърхнина от 2-ра степен? За всяко нещо си има специална формула. От значение е и как представяш като структури данни геометричните обекти, които ще трансформираш.
Дай ми e-mail, да ти пратя нещо.
А сега на тема въртене около права. Това е частен случай на трансформация. Мащабирането, проекциите, също са частен случай на трансформация. Описва се с матрица 4х4 в хомогенни координати. Пише го във всяка аналитична геометрия. Сега идва въпросът: какво ще трансформираш? Точка, права, равнина, повърхнина от 2-ра степен? За всяко нещо си има специална формула. От значение е и как представяш като структури данни геометричните обекти, които ще трансформираш.
Дай ми e-mail, да ти пратя нещо.
Re: малко геометрийка :)
a, b, c, agli na zavartane okolo ossite x, y, ili z
xn, yn, zn nacalniu koordinati
x, y, z koordinati sled zavartaneto
parvo puskas PL1 ednokratno
sled tova za vseka tocka ot obekta puskas PL2
procedure pl1;
begin
sx:=sin(a);cx:=cos(a);
sy:=sin(b);cy:=cos(b);
sz:=sin(c);cz:=cos(c);
end;
{-------------------------------}
procedure pl2;
begin
xn:=x*cz-y*sz;yn:=x*sz+y*cz;
x:=xn*cy-z*sy;z:=xn*sy+z*cy;
y:=yn*cx-z*sx;z:=yn*sx+z*cx;
end;
xn, yn, zn nacalniu koordinati
x, y, z koordinati sled zavartaneto
parvo puskas PL1 ednokratno
sled tova za vseka tocka ot obekta puskas PL2
procedure pl1;
begin
sx:=sin(a);cx:=cos(a);
sy:=sin(b);cy:=cos(b);
sz:=sin(c);cz:=cos(c);
end;
{-------------------------------}
procedure pl2;
begin
xn:=x*cz-y*sz;yn:=x*sz+y*cz;
x:=xn*cy-z*sy;z:=xn*sy+z*cy;
y:=yn*cx-z*sx;z:=yn*sx+z*cx;
end;
Re: малко геометрийка :)
Не е лошо, но ротация по принцип се прави с матрици, понеже имаш 9 умножения вместо 12...
да не говорим че понякога е доста трудно да се изрази една ротация като произведение на ротации по 3те оси както си го написал...
Reality is for people who can't face the Science Fiction!
да не говорим че понякога е доста трудно да се изрази една ротация като произведение на ротации по 3те оси както си го написал...
Reality is for people who can't face the Science Fiction!
Re: малко геометрийка !?!
Няма смисъл от хомогенни координати и 4x4 матрици, той не смята да проектира нищо доколкото разбрах.
Reality is for people who can't face the Science Fiction!
Reality is for people who can't face the Science Fiction!
Re: малко геометрийка :)
hubavoi de! tova ako se oprosti moje i 9 umnojenia da stanat!
tova ne preci ti da napises kak se pravi s matrici!
sega nemam spravocnik pod raka!
tova ne preci ti da napises kak se pravi s matrici!
sega nemam spravocnik pod raka!
Re: Proweri si po6tata
A dali moje da go pratish i na men,
Az imam edno reshenie za moite problemi (vartene na tocki okolo 3 osi)
no shte mi e interesno da vidia i neshto razlichno, toku vij mi hrunala niakoia dobra ideia.
Az imam edno reshenie za moite problemi (vartene na tocki okolo 3 osi)
no shte mi e interesno da vidia i neshto razlichno, toku vij mi hrunala niakoia dobra ideia.
Re: малко tutoriali :)
Няма смисъл - има на поне хиляда места е Интернет такива tutoriali....
[линк]
[линк]
и т.н....
Reality is for people who can't face the Science Fiction!
[линк]
[линк]
и т.н....
Reality is for people who can't face the Science Fiction!
Re: малко tutoriali :)
Сериозно?! Е, не го четох де...
Ми значи ротационните матрици около всяка ос имат вида:
| cosZ sinZ 0 | | cosY 0 sinY | | 1 0 0 |
| -sinZ cosZ 0 | | 0 1 0 | | 0 cosZ sinZ |
| 0 0 1 | | -sinY 0 cosY | | 0 -sinZ cosZ |
( около оста Z ) ( около оста Y ) ( около оста X )
За знаците не залагам главата си, ама голяма работа - най-много да се върти наляво вместо надясно някъде... :)
Та матрицата която ти трябва е получената чрез умножение на тези трите със съответните им ъгли....
А умножение на вектор с матрица е точно 9 операции умножение:
y1 = a11.x1 + a12.x2 + a13.x3
y2 = a21.x1 + a22.x2 + ...
y3 = a31.x1 + ...
Ако обаче някъде се наложи често ротиране на ратационната матрица, тогава се ползват Quaternion-и...
Reality is for people who can't face the Science Fiction!
Ми значи ротационните матрици около всяка ос имат вида:
| cosZ sinZ 0 | | cosY 0 sinY | | 1 0 0 |
| -sinZ cosZ 0 | | 0 1 0 | | 0 cosZ sinZ |
| 0 0 1 | | -sinY 0 cosY | | 0 -sinZ cosZ |
( около оста Z ) ( около оста Y ) ( около оста X )
За знаците не залагам главата си, ама голяма работа - най-много да се върти наляво вместо надясно някъде... :)
Та матрицата която ти трябва е получената чрез умножение на тези трите със съответните им ъгли....
А умножение на вектор с матрица е точно 9 операции умножение:
y1 = a11.x1 + a12.x2 + a13.x3
y2 = a21.x1 + a22.x2 + ...
y3 = a31.x1 + ...
Ако обаче някъде се наложи често ротиране на ратационната матрица, тогава се ползват Quaternion-и...
Reality is for people who can't face the Science Fiction!
Стига сте въртели точки..
Завъртете поне една равнина или повърхнина от втора степен. Последнот е доста интересно. Кой ще познае как става?
Re: малко tutoriali :)
taka de! nali zatova stava duma!
nakraia sa polucis sastoto deto az napisah, samoce ste e "matemavticeski izdarjano" :-)
dobre de, napisi edna podprogramka deto kato ia vikna sa mi napravi rotacia po trite osi ednovremenno!
nakraia sa polucis sastoto deto az napisah, samoce ste e "matemavticeski izdarjano" :-)
dobre de, napisi edna podprogramka deto kato ia vikna sa mi napravi rotacia po trite osi ednovremenno!
Re: Стига сте въртели точки..
mi edna povarhnina se sastoi ot tocki! vartat se tockite-varti se i ravninana!
Re: малко геометрийка :)
Хора, трябва ми въртене около точка, не около ос.
Значи представете си един обект в пространството, и една точка, около която се върти. Ако т. съвпада с геометричния център на тялото, то въртенето си е съвсем обикновено. Ако постепенно местим точката в пространството и в един момент тя напусне очертанията на тялото, то то освен около оста си, ще се върти и около точката. Като Земята около Слънцето. Можете ли да си го представите?
Я вышел им наперерез...
Значи представете си един обект в пространството, и една точка, около която се върти. Ако т. съвпада с геометричния център на тялото, то въртенето си е съвсем обикновено. Ако постепенно местим точката в пространството и в един момент тя напусне очертанията на тялото, то то освен около оста си, ще се върти и около точката. Като Земята около Слънцето. Можете ли да си го представите?
Я вышел им наперерез...
Malko astronomiya :)
Ne, Grisha :-))) Vyrtene okolo tochka v trimernoto prostranstvo naistina nyama. A Zemyata se vyrti okolo Slynceto spryamo prava, koyato minava prez Slynceto, i e perpendikulyarna na ekliptikata.
Редактирано от Potencialen emigrant на
Re: малко геометрийка :)
tiq neshta deto ti gi predlojiha Zemedeleca i CALL-151 sa vyrtene okolo trite osi ednovremenno (x,y i z) rezultata e vyrtene okolo presechenata im tochka...
IF JADEN THEN
GOTO BIRARIA;
IF JADEN THEN
GOTO BIRARIA;
Re: малко tutoriali :)
Tvoeto e s 12 umnojenia - tochka.
Nachina s matricite dava 9 umnojenia - tochka.
Az sum izlojil nachina s matricite - ochevidno.
Koe e sushtoto?
...
predi da naucha za matricite i az rotirah kato towa koeto si napisal - e, ne towa e istinata!
Nachina s matricite dava 9 umnojenia - tochka.
Az sum izlojil nachina s matricite - ochevidno.
Koe e sushtoto?
...
predi da naucha za matricite i az rotirah kato towa koeto si napisal - e, ne towa e istinata!