# i have a line that goes through a circle. how can i find intersection points?

Hi. I have an point on edge of a circle and a direction where that point facing. When i draw a ray from that point i want that line to end at other edge of circle but i don't know how can i calculate that point because that line does not go from center(if it would then length of line would be same as diameter of circle). if i can find the other point then i can calculate the length of it by using chord of circle formula which is what i actually need.

**Answer** by Hellium
·
Aug 15, 2019 at 01:45 PM

Let's take the following image representing your situation.

`O`

is the center of the circle

`A`

is the point you know

`B`

is the point you are looking for

`v`

is the direction vector you know

`α`

is the angle between `AO`

and `AB`

vectors

`ω`

is the angle between `OA`

and `OB`

vectors

Because `AOB`

is an isosceles triangle, the `OAB`

and `OBA`

angles are equal. And the sum of the angles of a triangle = 180°.

**Pseudo code**

```
α = Angle( O - A, v )
ω = 180 - 2 * a // because ω + α + α = 180
BO = Rotate(A - O, ω)
B = O + BO
```

**Translated in C#:**

```
private Vector3 ComputeB( Vector3 circleCenter, Vector3 circleNormal, Vector3 point, Vector3 direction )
{
float a = Vector3.SignedAngle( circleCenter - point, direction, circleNormal );
float w = 0;
if ( a >= 0 ) w = 180 - 2 * a; // because w + a + a = 180;
else w = -( 180 + 2 * a );
Vector3 BO = Quaternion.AngleAxis(w, -circleNormal) * (point - circleCenter);
return circleCenter + BO;
}
```

[SOLVED]Problem was y axis of center wasn't same as other positions and this caused miscalculations on angles.

Old Problem: Hey. Thanks you for your answer but i made few tests and it looks like there is have an offset to point. Can this be because of - 90 degree unity thing because unity handles rotation differently?

(it should be on top of red point on image but it's not and i did give the same direction as line's direction)

The images are broken, can you upload them again?

When I tested, it seemed to work fine.

### Your answer

### Welcome to Unity Answers

The best place to ask and answer questions about development with Unity.

To help users navigate the site we have posted a site navigation guide.

If you are a new user to Unity Answers, check out our FAQ for more information.

Make sure to check out our Knowledge Base for commonly asked Unity questions.

If you are a moderator, see our Moderator Guidelines page.

We are making improvements to UA, see the list of changes.

### Follow this Question

### Related Questions

Circle-line Intersection Points 3 Answers

Find "real" rotation of box mesh 0 Answers

Hexagonal geodesic map 0 Answers

Detecting if line cuts Polygon 1 Answer