Page 1 of 1

Need Help With 2D Rotation

Posted: September 13th, 2017, 5:28 am
by Walka
After a lot of googling and Youtube I am lost on how to make a 2D image rotate. It seems to more I search the more confused I get lol I am attaching a simple project where I have a triangle drawn on the screen. For the sake of argument we will pretend that the triangle is a "ship". I have draw 2 sides of the triangle a different color to indicate the front of the ship. Can anybody help me with making my ship rotate?

For instance lets say I want the ship to point towards the mouse cursor.

Re: Need Help With 2D Rotation

Posted: September 14th, 2017, 4:22 am
by chili
Can't download right now. Are you trying to rotate a raster image, or just a triangle drawn with lines? If it is the latter, then it's pretty easy my friend.

Check out my Advanced Tutorial 3 for a thorough explanation about rotation math.

Re: Need Help With 2D Rotation

Posted: September 14th, 2017, 6:07 pm
by albinopapa
Yeah, it's going to be best to understand matrix transformations if you ever want to move on to 3D.

I added a matrix class and a Vec3 class to your project. I changed the Vec2 class to a template class and renamed the GetNormalized to Normalize, but those were just for my sanity.

The ship now points at the mouse cursor, check out the Ship::Draw function for the matrix stuff.

I used vector math to get the direction from ship to mouse pointer in Ship::Update, then I use atan2f in the draw function to get the angle.

Re: Need Help With 2D Rotation

Posted: September 15th, 2017, 1:34 am
by chili
Matrix stuff is definitely required learning, but I would not recommend starting with them. There is nothing about matrices or rotation that obliges you to use them together. One problem at a time.

First learn how to do rotation math with in simple C++ statements. Once you have your head around that, then you can study matrices, study how they can be used to encode and concatenate transformations, and apply that tech to rotation / scaling.

Re: Need Help With 2D Rotation

Posted: September 15th, 2017, 5:35 am
by Walka
Yes its just a triangle with a draw line function. I will definitely check out that tutorial chili. Most things I have found online haven't really explained it well

Re: Need Help With 2D Rotation

Posted: September 15th, 2017, 5:37 am
by Walka
albinopapa wrote:Yeah, it's going to be best to understand matrix transformations if you ever want to move on to 3D.

I added a matrix class and a Vec3 class to your project. I changed the Vec2 class to a template class and renamed the GetNormalized to Normalize, but those were just for my sanity.

The ship now points at the mouse cursor, check out the Ship::Draw function for the matrix stuff.

I used vector math to get the direction from ship to mouse pointer in Ship::Update, then I use atan2f in the draw function to get the angle.
A lot of what you said may as well be in Spanish lol

Re: Need Help With 2D Rotation

Posted: September 15th, 2017, 5:55 am
by Walka
@albinopapa what you did works great and that is exactly what I was looking for. I've been over looking you code and I am having trouble understanding exactly what is happening. So I am going to check out Chili's advanced tutorials to try to understand this stuff better.

Re: Need Help With 2D Rotation

Posted: September 15th, 2017, 6:27 am
by chili
Walka wrote:@albinopapa what you did works great and that is exactly what I was looking for. I've been over looking you code and I am having trouble understanding exactly what is happening. So I am going to check out Chili's advanced tutorials to try to understand this stuff better.
Right on. If you're doing line drawing it will be easy going I think. Watch A3 and hit me up here or on the Discord if you need clarification on anything. I think A4 or A5 goes over matrices.

We might be able to give you links to some other vids as well on rotation stuff as well as matrix/linear algebra stuff.

Re: Need Help With 2D Rotation

Posted: September 15th, 2017, 6:29 am
by Walka
I will check it out soon, I am currently grinding out Destiny 2 ;) Thanks for the help

Re: Need Help With 2D Rotation

Posted: September 15th, 2017, 3:39 pm
by chili
Check your PMs ;)