### Author Topic: How to calculate (using trig) rotation in axe?  (Read 2905 times)

0 Members and 1 Guest are viewing this topic.

#### c4ooo

• Posts: 252
• Rating: +10/-1
• The impossible chemical compound.
##### How to calculate (using trig) rotation in axe?
« on: March 04, 2015, 07:14:46 am »
i wanted to make a 3d game, but as ime not sure how to use the sin and cos function in axe as they return unexpected values.
How would i go about implementing rotation (for now, if i know haw to rotate round y i can rotate around any thing) around the y axis?
Thank you;
-German Kuznetsov
The impossible chemical compound.

#### Sorunome

• Fox Fox Fox Fox Fox Fox Fox!
• Support Staff
• LV13 Extreme Addict (Next: 9001)
• Posts: 7920
• Rating: +374/-13
• Derpy Hooves
##### Re: How to calculate (using trig) rotation in axe?
« Reply #1 on: March 04, 2015, 07:49:22 am »
The sin( and the cos( functions both return values from -127 to +127. The period is from 0 to 256, so if you were to draw a sine curve it starts at 0, crosses the x-axis at 128 and ends again on the x-axis on 256.
 THE GAMEAlso, check out my websiteIf OmnomIRC is screwed up, blame me!Click here to give me an internet!

#### c4ooo

• Posts: 252
• Rating: +10/-1
• The impossible chemical compound.
##### Re: How to calculate (using trig) rotation in axe?
« Reply #2 on: March 04, 2015, 09:58:01 pm »
The sin( and the cos( functions both return values from -127 to +127. The period is from 0 to 256, so if you were to draw a sine curve it starts at 0, crosses the x-axis at 128 and ends again on the x-axis on 256.

Yes. But if it returns values from -127 to +127, will that mean that I devide the final out put by 127? That's the part I don't get.
if you can provide some code that rotates (x,y) around the z axis that would be nice. (Originally I said y but I ment z)
-German Kuznetsov
The impossible chemical compound.

#### Sorunome

• Fox Fox Fox Fox Fox Fox Fox!
• Support Staff
• LV13 Extreme Addict (Next: 9001)
• Posts: 7920
• Rating: +374/-13
• Derpy Hooves
##### Re: How to calculate (using trig) rotation in axe?
« Reply #3 on: March 05, 2015, 07:55:45 am »
According to https://www.siggraph.org/education/materials/HyperGraph/modeling/mod_tran/3drota.htm you have
Code: [Select]
x' = x*cos q - y*sin qy' = x*sin q + y*cos qz' = z
so in axe you'd do something like

Code: [Select]
x' = ((x*cos(q)) - (y*sin(q)))/127y' = ((x*sin(q)) + (y*cos(q)))/127z' = z
Note that you do not have floating point numbers in axe, so you divide as late as possible
 THE GAMEAlso, check out my websiteIf OmnomIRC is screwed up, blame me!Click here to give me an internet!

#### c4ooo

• Posts: 252
• Rating: +10/-1
• The impossible chemical compound.
##### Re: How to calculate (using trig) rotation in axe?
« Reply #4 on: March 05, 2015, 01:04:03 pm »
Ok thanks! Going to try it out. Its just that i tried to look at the 3d cube demo program and got confused by the code!
-German Kuznetsov
The impossible chemical compound.

#### TheMachine02

• LV6 Super Member (Next: 500)
• Posts: 452
• Rating: +105/-0
• me = EF99+F41A
##### Re: How to calculate (using trig) rotation in axe?
« Reply #5 on: March 05, 2015, 03:59:08 pm »
You also have to take care that you need a signed division (and not the unsigned) wich is //.
As a side note, dividing by 127 is mathematicly correct, but you doesn't want to do that  as it is verrry slow. Divide by 128 instead (and btw, the precision loss is almsot nothing)
AXE/asm programmer - unleash the power of z80 //C++//C

epic 3D things http://www.ntu.edu.sg/home/ehchua/programming/opengl/CG_BasicsTheory.html