Followers 0

# 2D Coordinate Determination: How to determine coordinates from a line intersection?

## 3 posts in this topic

Here's a diagram beautifully depicting the problem.

[img]http://i.imgur.com/gCISK.png[/img]

Note: The pink line is the purple center line's radius length, not the black outer line's radius.
0

##### Share on other sites
Unfortunately, an image lacks formal rigor. What kind of intersection are you computing exactly? You have a 2D solid circle drawn in red, and a curve specified in pink? or a thick curve specified by the black outline? or a thick circle specified by the black area? or a hollow circle specified by the pink area? What is your input data? What is your expected output data?

I'm going to guess that you want to compute the point where a solid 2D circle (red) specified by A=(posA, rA) intersects a hollow 2D circle (pink) specified by B=(posB, rB):
[code]
1. Project posA to B. That is, compute projB = posB + (posA-posB).Normalized() * rB;
2. Compute the distance of projB to the circle A. distance = (posA - projB).Length();
3. if (distance < rA) return intersection at point projB; else return no intersection;
[/code]

If you instead are computing an intersection against a thick 2D "ring" formed by extruding the pink hollow circle by a distance d, do the same as above, but at step 3, do a if (distance < rA + d) instead.
0

##### Share on other sites
Do you want the point that is [i]Radius[/i] units away from [i]Center[/i] in the direction towards [i]Ball[/i]? In that case, take the vector from [i]Center [/i]to [i]Ball[/i], normalize it, multiply it by [i]Radius [/i]and add it to [i]Center[/i].

2

##### Share on other sites
[quote name='clb' timestamp='1349352730' post='4986734']
Unfortunately, an image lacks formal rigor. What kind of intersection are you computing exactly? You have a 2D solid circle drawn in red, and a curve specified in pink? or a thick curve specified by the black outline? or a thick circle specified by the black area? or a hollow circle specified by the pink area? What is your input data? What is your expected output data?[/quote]

Ah. I'm sorry for the image's vague description. I'll try answering the questions respective to the questions:[list=1]
[*]The intersection where the blue line meets the pink line.
[*]A 2D solid circle in red is a ball, and a curve in pink is the center line, which is a line consisting of infinite center points of the black outline. The thick curve is the shape of an obstacle. It's not a thick circle, nor a hollow circle which was specified by the pink area.
[*]The input data for the ball consists of a vector position, vector speed, and vector acceleration. The obstacle (black lines) contains only the vector position of the center and the radius of the pink curve's distance.
[*]The expected output data would be to retrieve a vector point that is the intersection of the blue line and the pink curve.
[/list]

[quote name='clb' timestamp='1349352730' post='4986734']
I'm going to guess that you want to compute the point where a solid 2D circle (red) specified by A=(posA, rA) intersects a hollow 2D circle (pink) specified by B=(posB, rB):
[code]
1. Project posA to B. That is, compute projB = posB + (posA-posB).Normalized() * rB;
2. Compute the distance of projB to the circle A. distance = (posA - projB).Length();
3. if (distance < rA) return intersection at point projB; else return no intersection;
[/code]

If you instead are computing an intersection against a thick 2D "ring" formed by extruding the pink hollow circle by a distance d, do the same as above, but at step 3, do a if (distance < rA + d) instead.
[/quote]

0

## Create an account

Register a new account