Calculate point in ellipse given a unit vector

Click For Summary
To calculate a point on an ellipse in the direction of a unit vector, the provided formula uses the ellipse's center and radii. However, this method results in a point that is slightly off, leading to incorrect collision detection. The discussion clarifies that the "ellipse radius" refers to the semi-major and semi-minor axes, denoted as a and b in the ellipse equation. An alternative approach involves using the slope from the unit vector and solving for y using the ellipse equation. This method aims to yield a more accurate point on the ellipse for collision detection.
mariano_donat
Messages
8
Reaction score
0
Hi to everyone.

I'm detecting collision between two ellipses. I've got my unit vector, my ellipse center and radius (horizontal and vertical). I want to calculate the point that lies in the ellipse on the direction of the unit vector. See the image attached. Suppose the red arrow is my unit vector and I want to get the coordinates of the green colored point. I'm just multiplying my unit vector times my radius plus the center of the ellipse. The formula looks like this:

Code:
//Assume unit vector has been already calculated at this stage, ellipseCenter and ellipseRadius has been given
Vector pointInEllipse = VectorMake(unitVector.x * ellipseRadius.x + ellipseCenter.x, unitVector.y * ellipseRadius.y + ellipseCenter.y);

The point I get using the above formula lies on the ellipse, but it's translated on both axis a little bit, translated enough to detect collisions when haven't occurred any.
What am I missing here?

Thank you very much in advance.
 

Attachments

  • pointinellipse.png
    pointinellipse.png
    1.2 KB · Views: 599
Mathematics news on Phys.org
I've never heard of an ellipse radius. If the equation of the ellipse is

\frac{x^2}{a^2}+\frac{y^2}{b^2}=1

what quantity represents the "ellipse radius"?
 
I apologize for that, it's a and b from that equation, ellipseRadius.x = a and ellipseRadius.y = b.
 
I have trouble deciphering your syntax in that programming language. But if you have a unit vector you have the slope m. Assuming the picture is translated to the origin, why not just solve y = mx with the equation of the ellipse? A quick calculation seems to show you just need to calculate something like

x=\pm\frac{ab}{\sqrt{m^2+b^2}}
 
Here is a little puzzle from the book 100 Geometric Games by Pierre Berloquin. The side of a small square is one meter long and the side of a larger square one and a half meters long. One vertex of the large square is at the center of the small square. The side of the large square cuts two sides of the small square into one- third parts and two-thirds parts. What is the area where the squares overlap?

Similar threads

  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 6 ·
Replies
6
Views
3K
  • · Replies 7 ·
Replies
7
Views
5K
  • · Replies 5 ·
Replies
5
Views
3K
  • · Replies 6 ·
Replies
6
Views
3K
  • · Replies 7 ·
Replies
7
Views
5K
Replies
3
Views
8K
  • · Replies 3 ·
Replies
3
Views
3K
  • · Replies 20 ·
Replies
20
Views
2K
  • · Replies 4 ·
Replies
4
Views
4K