Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Smecheri vs populime

La multi ani @Lieutenant!

La multi ani @xmanyacs77!

Tableta office
 Comanda Mobexpert - o zi inainte ...

Ocolirea limitatoarelor de viteza...

Recomandare adeziv - pt pervaz PVC

Sfat achizitie, Xiaomi 14 Ultra s...
 Priza contorizare consum energie

Cat timp purtați o pereche d...

Problema Makita PLM 4628n

Nelamurire sunet navigatie auto
 Ma bate gandul la primul bmw

Cum rezolv o incompatibilitate in...

Despre instaurarea normalitã...

De cate ori purtati o pereche de ...
 

Rotirea Unui Dreptunghi

- - - - -
  • Please log in to reply
19 replies to this topic

#1
MadMax

MadMax

    Pike hunter

  • Grup: Senior Members
  • Posts: 2,361
  • Înscris: 14.05.2003
Attached File  rotation.gif   2.15K   85 downloads

O intrebare pentru cei carora le place geometria analitica: daca rotesc dreptunghiul rosu (din imagine) in jurul punctului A, cu unghiul beta, care vor fi coordonate punctelor B', C' si D' in functie de punctul A si unghiul beta?
Intreb pentru ca am terminat scolile de multisor si...nu mi-a placut la momentul respectiv (din pacate) geometria analitica.

TIA!

#2
seth

seth

    Member

  • Grup: Members
  • Posts: 282
  • Înscris: 19.01.2005
....la prima vedere:

  initial
  A(x1,y1)
  B(x2,y1)
  C(x2,y2)
  D(x1,y2)


./....dupa rotire( x -creste spre dreapta; y - creste in sus---usual)...ceva in genu:

   xb = cos( b ) * (x2 -x1) + x1;
  yb  = sin( b ) * (x2 -x1) + y1;


  xd = sin( b ) * (y2 - y1) + x1;
  yb = cos( b ) * (y2- y1) + y1;

  xc= sin(90 -  b ) * sqrt( (x2 - x1)^2 + (y2 - y1)^2)  + x1;
  yc= cos(90 -  b ) * sqrt( (x2 - x1)^2 + (y2 - y1)^2)  + y1;


..cred :mellow:

Edited by seth, 14 October 2005 - 10:26.


#3
geo_990

geo_990

    Member

  • Grup: Members
  • Posts: 321
  • Înscris: 19.04.2003
Cred ca daca faci translatia asta in Corel poti vedea exact coordonatele, fara alte calcule.

#4
MadMax

MadMax

    Pike hunter

  • Grup: Senior Members
  • Posts: 2,361
  • Înscris: 14.05.2003

 geo_990, on Oct 14 2005, 11:25, said:

Cred ca daca faci translatia asta in Corel poti vedea exact coordonatele, fara alte calcule.

Pe mine ma intereseaza formulele matematice....e ceva general, dreptunghiul se poate roti si cu 359 de grade.

#5
evilone

evilone

    Senior Member

  • Grup: Senior Members
  • Posts: 3,521
  • Înscris: 14.12.2003
Rotația e o transformare liniară. Matricea transformării este

Attached File  rotatie.png   764bytes   75 downloads

Edit: deci cu alte cuvinte:

Attached File  rotatie2.png   1.08K   104 downloads

Edited by evilone, 14 October 2005 - 10:57.


#6
noir2501

noir2501

    Member

  • Grup: Members
  • Posts: 439
  • Înscris: 28.11.2001
Pentru coordonatele oricarui punct se face la fel. Luam B ca exemplu:

Presupun ca AB nu este orizontal si face un unchi alfa cu orizontala  - consider pe A in origine
Daca este orizontal (ca in cazul tau), alfa = 0

AB = d
B de coordonate x,y rezulta d= SQRT(x*x + y*y)

B' de coordonate x' si y'

x' = d * cos (alfa + beta)
y' = d * sin (alfa + beta)

unde alfa = arctg(y/x)


#7
Africanul

Africanul

    Active Member

  • Grup: Members
  • Posts: 1,739
  • Înscris: 24.10.2003
Vezi evilone!

#8
MadMax

MadMax

    Pike hunter

  • Grup: Senior Members
  • Posts: 2,361
  • Înscris: 14.05.2003

 evilone, on Oct 14 2005, 11:53, said:

Rotația e o transformare liniară. Matricea transformării este

attachment

Edit: deci cu alte cuvinte:

attachment

Si cum "traduc" in formule matematice? (sorry, dar nu mai tin minte operatii pe matrici :( si la ce-mi trebuie chestia asta, nu se merita sa revizuiesc materia...)

#9
dixy

dixy

    Senior Member

  • Grup: Banned
  • Posts: 3,910
  • Înscris: 06.09.2004

 MadMax, on Oct 14 2005, 09:04, said:

attachment

O intrebare pentru cei carora le place geometria analitica: daca rotesc dreptunghiul rosu (din imagine) in jurul punctului A, cu unghiul beta, care vor fi coordonate punctelor B', C' si D' in functie de punctul A si unghiul beta?
Intreb pentru ca am terminat scolile de multisor si...nu mi-a placut la momentul respectiv (din pacate) geometria analitica.

TIA!

Nu văd imaginea :( . Poți să rotești foarte simplu orice figură geometrică în OpenGL cu rotatef(). Care așa cum a spus și Evilone face de fapt o înmulțire de matrici. În 2d, rotația se face după formulele:

x' = X(x,y) = xcosθ + ysinθ
y' = Y(x,y) = -xsinθ + ycosθ

unde θ este unghiul de rotație.

Edited by dixy, 14 October 2005 - 11:18.


#10
evilone

evilone

    Senior Member

  • Grup: Senior Members
  • Posts: 3,521
  • Înscris: 14.12.2003
Attached File  rotatie.png   714bytes   67 downloads
Attached File  rotatie2.png   729bytes   63 downloads

Coordonatele sunt relative la centrul de rotație.

#11
seth

seth

    Member

  • Grup: Members
  • Posts: 282
  • Înscris: 19.01.2005

Quote

/....dupa rotire( x -creste spre dreapta; y - creste in sus---usual)...ceva in genu:

xb = cos( b ) * (x2 -x1) + x1;
yb = sin( b ) * (x2 -x1) + y1;


xd = sin( b ) * (y2 - y1) + x1;
yb = cos( b ) * (y2- y1) + y1;

xc= sin(90 - b ) * sqrt( (x2 - x1)^2 + (y2 - y1)^2) + x1;
yc= cos(90 - b ) * sqrt( (x2 - x1)^2 + (y2 - y1)^2) + y1;


am gresit un pic.. :death: .



xb = cos( b ) * (x2 -x1) + x1;
yb = sin( b ) * (x2 -x1) + y1;


xd = sin( b ) * (y2 - y1) + x1;
yb = cos( b ) * (y2- y1) + y1;

xc= cos( b ) *( x2 - x1) - sin( b ) * (y2 - y1) + x1
yc= cos( b ) * ( y2 - y1) + sin ( b ) * ( x2 -x1)  - y1

(---in  genu

#12
Africanul

Africanul

    Active Member

  • Grup: Members
  • Posts: 1,739
  • Înscris: 24.10.2003
In general, toate operatiile de genul asta (rotiri, translatii, oglindiri, etc, etc) sunt exprimate cu matrici, indiferent ca sunt 2D sau 3D. Este mai simplu asa. Decat sa tii minte 2-3 formule pentru o transformare, mai bine tii minte o matrice.

Edited by Africanul, 14 October 2005 - 11:43.


#13
MadMax

MadMax

    Pike hunter

  • Grup: Senior Members
  • Posts: 2,361
  • Înscris: 14.05.2003

 evilone, on Oct 14 2005, 12:18, said:

attachment
attachment

Coordonatele sunt relative la centrul de rotație.


Merge! Multumesc maxim!!!  :peacefingers:

#14
evilone

evilone

    Senior Member

  • Grup: Senior Members
  • Posts: 3,521
  • Înscris: 14.12.2003
:arigato:

#15
alex_ndc

alex_ndc

    Member

  • Grup: Members
  • Posts: 509
  • Înscris: 07.10.2005
Faci vreo animatie ceva ?
God ce-mi placeau pe vremuri ... heh, vremurile bune

 MadMax, on Oct 14 2005, 13:12, said:

Merge! Multumesc maxim!!!  :peacefingers:

Fii atent si la raspunsul lui @seth ca el face si translatie. Formula data de @evilone este pt rotatie in jurul pct (0,0)

#16
evilone

evilone

    Senior Member

  • Grup: Senior Members
  • Posts: 3,521
  • Înscris: 14.12.2003
Da, am spus că acele coordonate sunt relative la centrul de rotație. Adaptarea este piece of cake.

#17
alex_ndc

alex_ndc

    Member

  • Grup: Members
  • Posts: 509
  • Înscris: 07.10.2005

 evilone, on Oct 14 2005, 22:26, said:

Da, am spus că acele coordonate sunt relative la centrul de rotație. Adaptarea este piece of cake.
OK, vazusem asta oricum, dar @MadMax a spus ca nu mai tine minte operatiile astea. :)

#18
evilone

evilone

    Senior Member

  • Grup: Senior Members
  • Posts: 3,521
  • Înscris: 14.12.2003
Sper că măcar cu atâta lucru se descurcă. Acolo este vorba doar de niște adunări/scăderi. Oricum, a zis că a rezolvat problema. :)

Anunturi

Chirurgia spinală minim invazivă Chirurgia spinală minim invazivă

Chirurgia spinală minim invazivă oferă pacienților oportunitatea unui tratament eficient, permițându-le o recuperare ultra rapidă și nu în ultimul rând minimizând leziunile induse chirurgical.

Echipa noastră utilizează un spectru larg de tehnici minim invazive, din care enumerăm câteva: endoscopia cu variantele ei (transnazală, transtoracică, transmusculară, etc), microscopul operator, abordurile trans tubulare și nu în ultimul rând infiltrațiile la toate nivelurile coloanei vertebrale.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate