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;
becoolnikeAsked:
Who is Participating?
 
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
 
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
Cloud Class® Course: Ruby Fundamentals

This course will introduce you to Ruby, as well as teach you about classes, methods, variables, data structures, loops, enumerable methods, and finishing touches.

 
ozoCommented:
subtract the coordinates of the top left point from all the points
0
 
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
 
Computer101Commented:
Forced accept.

Computer101
EE Admin
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.