Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 683
  • Last Modified:

How do i rotate a quad by its origen/pivot point? direct3d

How do i rotate a quad by its origen/pivot point? direct3d

i use the following: for define my quad i know how to rotate it by it rotates by the top-left point and not by his origen point? any help?

i really need this.

vertexarray[0].x := 0;
vertexarray[0].y := 0;
vertexarray[0].z := 0.0;

vertexarray[1].x := 0;
vertexarray[1].y := 64;
vertexarray[1].z := 0.0;

vertexarray[2].x :=  0;
vertexarray[2].y :=  0;
vertexarray[2].z := 0.0;
vertexarray[2].rhw := 1.0;

 vertexarray[3].x :=  64;
vertexarray[3].y :=  0;
vertexarray[3].z := 0.0;


 vertexarray[4].x :=  64;
vertexarray[4].y :=  0;
vertexarray[4].z := 0.0;


 vertexarray[5].x :=  64;
vertexarray[5].y :=  64;
vertexarray[5].z := 0.0;

 vertexarray[6].x :=  0;
vertexarray[6].y :=  64;
vertexarray[6].z := 0.0;
0
becoolnike
Asked:
becoolnike
1 Solution
 
ozoCommented:
shift the to left point to the origin, rotate around  the origin, translate back
0
 
becoolnikeAuthor Commented:
i want to shift the to left point to the origin but i dont know how lol.
0
 
ozoCommented:
subtract the coordinates of the top left point from all the points
0
What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

 
ikeworkCommented:
if your *origin is the center, then substract every x- and y-component of each vertex with 32 and rotate it then:

vertexarray[0].x := 0-32;
vertexarray[0].y := 0-32;
vertexarray[0].z := 0.0;

vertexarray[1].x := 0-32;
vertexarray[1].y := 64-32;
vertexarray[1].z := 0.0;

vertexarray[2].x :=  0-32;
vertexarray[2].y :=  0-32;
vertexarray[2].z := 0.0;
vertexarray[2].rhw := 1.0;

 vertexarray[3].x :=  64-32;
vertexarray[3].y :=  0-32;
vertexarray[3].z := 0.0;


 vertexarray[4].x :=  64-32;
vertexarray[4].y :=  0-32;
vertexarray[4].z := 0.0;


 vertexarray[5].x :=  64-32;
vertexarray[5].y :=  64-32;
vertexarray[5].z := 0.0;

 vertexarray[6].x :=  0-32;
vertexarray[6].y :=  64-32;
vertexarray[6].z := 0.0;


good luck :)
ike
0
 
ozoCommented:
I thought you said you wanted to rotate around the top-left point rather than around (0,0,0)
Do you want to rotate around its midpoint?
0
 
becoolnikeAuthor Commented:
yeah by his midpoint called povot. anyway without locking vertex/
there must be a fucntion using direct3d utils.
0
 
becoolnikeAuthor Commented:
vertex locking takes takes off mush speed of a game.
0
 
ozoCommented:
multiply the
translate by povot matrix
*
rotate matrix
*
translate by -povot matrix
The resulting matrix id a rotation around povot
Apply that matrix to your vertexarray
0
 
Computer101Commented:
Forced accept.

Computer101
EE Admin
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Tackle projects and never again get stuck behind a technical roadblock.
Join Now