I am having a problem finding a point at a specific distance between 2 points. Suppose I have point A(1,1) and point B(4,4). I know the distance between these 2 points is 4.24. However, I do not know how to find point C, which is 1/4 the distance from point A to point B. How do I find point C?

**1**

# Find point between 2 points?

Started by tuphdc, Apr 17 2011 05:54 PM

4 replies to this topic

Sponsor:

###
#2
Members - Reputation: **137**

Posted 17 April 2011 - 06:00 PM

What you are looking for is the midpoint - http://en.wikipedia.org/wiki/Midpoint

###
#3
Crossbones+ - Reputation: **6665**

Posted 17 April 2011 - 06:09 PM

I am having a problem finding a point at a specific distance between 2 points. Suppose I have point A(1,1) and point B(4,4). I know the distance between these 2 points is 4.24. However, I do not know how to find point C, which is 1/4 the distance from point A to point B. How do I find point C?

to find a line 1/4th of the distance between 2 points you just need:

Vector2D p1(1,1);

Vector2D p2(4,4);

Vector2D direction = p2-p1

Vector2D p3 = p1+ direction* 0.25; (assuming your vector library supports scalar multiplication, if not its simply p3.x = p1.x + direction.x*0.25 and same for y)

If you don't have a vector library you can simply do

p1x=1;

p1y=1;

p2x=4;

p2y=4;

dirx=p2x-p1x;

diry=p2y-p1y;

p3x = p1x+dirx*0.25;

p3y = p1y+diry*0.25;

*I don't suffer from insanity, I'm enjoying every minute of it.*

The voices in my head may not be real, but they have some good ideas!

The voices in my head may not be real, but they have some good ideas!

###
#4
Crossbones+ - Reputation: **5062**

Posted 17 April 2011 - 06:11 PM

Using vector algebra:

C = (B - A) * .25 + A

C = (<4,4> - <1,1>) * .25 + <1,1>

C = <3,3> * .25 + <1,1>

C = <.75,.75> + <1,1>

C = <1.75, 1.75>

Or:

Cx = (Bx - Ax) * .25 + Ax

Cy = (By - Ay) * .25 + Ay

C = (B - A) * .25 + A

C = (<4,4> - <1,1>) * .25 + <1,1>

C = <3,3> * .25 + <1,1>

C = <.75,.75> + <1,1>

C = <1.75, 1.75>

Or:

Cx = (Bx - Ax) * .25 + Ax

Cy = (By - Ay) * .25 + Ay

`QWxsIHRvYXN0LXRvYXN0aW5nIHRvYXN0ZXJzIGNhbiB0b2FzdCB0b2FzdGVkIHRvYXN0LCBhbHRob3Vn aCByZS10b2FzdGluZyB0b2FzdGVkIHRvYXN0IGlzIGdlbmVyYWxseSBub3QgcmVjb21tZW5kZWQgYnkg dGhlIG1hbnVmYWN0dXJlcnMgb2YgdG9hc3QtdG9hc3RpbmcgdG9hc3RlcnMuLi4=`