Jump to content

  • Log In with Google      Sign In   
  • Create Account

Interested in a FREE copy of HTML5 game maker Construct 2?

We'll be giving away three Personal Edition licences in next Tuesday's GDNet Direct email newsletter!

Sign up from the right-hand sidebar on our homepage and read Tuesday's newsletter for details!


We're also offering banner ads on our site from just $5! 1. Details HERE. 2. GDNet+ Subscriptions HERE. 3. Ad upload HERE.


Linear motion - 2 algorithms


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
10 replies to this topic

#1 J.B47   Members   -  Reputation: 51

Like
0Likes
Like

Posted 01 October 2012 - 03:16 AM

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 Posted Image

Edited by J.B47, 01 October 2012 - 03:20 AM.


Sponsor:

#2 rnlf   Members   -  Reputation: 1167

Like
4Likes
Like

Posted 01 October 2012 - 03:42 AM

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.

my blog (German)


#3 J.B47   Members   -  Reputation: 51

Like
0Likes
Like

Posted 01 October 2012 - 11:39 AM

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.


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?
http://en.wikipedia.org/wiki/Slope

Edited by J.B47, 01 October 2012 - 01:02 PM.


#4 rnlf   Members   -  Reputation: 1167

Like
2Likes
Like

Posted 02 October 2012 - 01:28 AM

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.

my blog (German)


#5 clb   Members   -  Reputation: 1785

Like
0Likes
Like

Posted 02 October 2012 - 09:33 AM

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


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:
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;

This is the same in 3D as well, just compute using 3D vectors.
Me+PC=clb.demon.fi | C++ Math and Geometry library: MathGeoLib, test it live! | C++ Game Networking: kNet | 2D Bin Packing: RectangleBinPack | Use gcc/clang/emcc from VS: vs-tool | Resume+Portfolio | gfxapi, test it live!

#6 J.B47   Members   -  Reputation: 51

Like
-6Likes
Like

Posted 03 October 2012 - 01:19 PM

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.


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, 03 October 2012 - 01:19 PM.


#7 rnlf   Members   -  Reputation: 1167

Like
2Likes
Like

Posted 04 October 2012 - 02:20 AM

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.

my blog (German)


#8 J.B47   Members   -  Reputation: 51

Like
-7Likes
Like

Posted 04 October 2012 - 11:58 AM

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

#9 rnlf   Members   -  Reputation: 1167

Like
0Likes
Like

Posted 05 October 2012 - 12:12 AM

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, that was an insult).

my blog (German)


#10 J.B47   Members   -  Reputation: 51

Like
0Likes
Like

Posted 05 October 2012 - 02:50 PM

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.

#11 Angus Hollands   Members   -  Reputation: 717

Like
2Likes
Like

Posted 25 October 2012 - 02:24 AM

Actually, people can learn quite a lot if they spend the time. If you leave learning to others, don't you compromise yourself? I can understand that not everybody is given the same education, but it is often better to accept the advice to learn, rather than shunning the practice altogether. Just my thoughts.




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS