# Linear motion - 2 algorithms

This topic is 1911 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

## Recommended Posts

Hi this is my first post. This subject may had been discused, but I do not know how to search it. I want to make a linear motion. I need the algorithm or functions to these problems:

- Move object from x,y to x2,y2 with linear motion, the function should return the time it took to complete the translation (with given velocity), and another function to calcute the velocity giving the time argument

- Would it be too hard to implement in a 3D environment?

Sorry for bad English / Double post
Be gentle on me [img]http://public.gamedev.net//public/style_emoticons/default/smile.png[/img] Edited by J.B47

##### Share on other sites
Actually, this is basically the same in 2D and 3D and it all follows directly from the definition of velocity.

velocity = distance / time, time = distance / velocity. All you need is the actual distance, which can be computed using vector subtraction (x2-x, y2-y) using the Pythagorean theorem: distance = sqrt(a^2+b^2). For 3D, you add the third dimension and are done.

##### Share on other sites
[quote name='rnlf' timestamp='1349084572' post='4985695']
Actually, this is basically the same in 2D and 3D and it all follows directly from the definition of velocity.

velocity = distance / time, time = distance / velocity. All you need is the actual distance, which can be computed using vector subtraction (x2-x, y2-y) using the Pythagorean theorem: distance = sqrt(a^2+b^2). For 3D, you add the third dimension and are done.
[/quote]

Hi rnlf. Thanks for pointing me up! I have another question, how do i get X2, Y2 position depending of the given time, velocity, and distance? Do i need the slope of the line?
[url="http://en.wikipedia.org/wiki/Slope"]http://en.wikipedia.org/wiki/Slope[/url] Edited by J.B47

##### Share on other sites
Well... distance or time and velocity, you don't need all of them. You have to know the direction of motion (as an angle or just give the velocity as a vector). In the first case, you have to use trigonometry (posX = posXold + velocity*time*sin(angle), posY = posYold + velocity*time*cos(angle)), in the second case it's just pos = oldpos + time * velocity (pos and velocity as a vector).

But seriously, that are really basic questions usually covered in high school maths and physics, I strongly recommend you read up on basic algebra, geometry and kinematics.

##### Share on other sites
[quote name='J.B47' timestamp='1349113179' post='4985804']
have another question, how do i get X2, Y2 position depending of the given time, velocity, and distance? Do i need the slope of the line?
http://en.wikipedia.org/wiki/Slope
[/quote]

You do not need to compute the slope of the line. In the sentence 'depending on the given time, velocity, and distance' you have over-specified the problem. If we have an object at constant linear motion, the following formula holds:
[code]
float2 startingPos = given;
float2 velocity = given;
float time = given; // Time since t=0. At t=0, the object is at position startingPos.

return startingPos + time * velocity;
[/code]

This is the same in 3D as well, just compute using 3D vectors.

##### Share on other sites
[quote name='rnlf' timestamp='1349162932' post='4985980']
Well... distance or time and velocity, you don't need all of them. You have to know the direction of motion (as an angle or just give the velocity as a vector). In the first case, you have to use trigonometry (posX = posXold + velocity*time*sin(angle), posY = posYold + velocity*time*cos(angle)), in the second case it's just pos = oldpos + time * velocity (pos and velocity as a vector).

But seriously, that are really basic questions usually covered in high school maths and physics, I strongly recommend you read up on basic algebra, geometry and kinematics.
[/quote]

You are being a ****. I ended school a long time ago and I don't remember anything, and you don't know nothing about the educational system of my country (It's 100% s***). I don't won't to learn, I just wanted the algorithms or functions. I think you were here to help people, not to judge them. I'm being mean because you are Edited by J.B47

##### Share on other sites
If your educational system is "100% s***", you have to educate yourself. You have internet, so you can just read some Wikipedia articles or something on the topics I suggested. If you find it mean if I give your some pointers on how to improve your knowledge, okay, I'm guilty as charged. If you don't want to learn anything, fine, but please say so in your postings. That way nobody has to waste her time on someone who obviously is too lazy to think for himself and will insult you for helping him.

##### Share on other sites
You know nothing about me. I'm lazy because I didn't looked for the functions? Because I don't want to waste my time searching for something that I've been searching for so many time? Go waste your time learning physics... If you are going to help somebody and then insult him, your help is not needed, I don't want it. You know what you can do with it

##### Share on other sites
Where exactly did I insult you? Btw, I am not "here to help people". I am here to learn myself and because it's fun to help people with whatever limited knowledge I have. But only people who are worth the effort. You have absolutely no right do demand anything here. If you are nice, people like to help you. Unless you pay people to answer your questions, you have to show them that you're not just here to exploit their kindness.

This is all I have to say to you. Good luck with your ignorance. (Yes, [b]t[/b][b]hat [/b]was an insult).

##### Share on other sites
Hmm I don't take it as an insult. What is ignorance? The act of ignoring:
To ignore: not knowing about a subject

I have learnt in my short life, that people can not know much about a subject, but can be master in others, so I don't take it as an insult. Good luck to you and thanks for your knowledge and time.