root / branches / simulator / projects / simulator / simulator / circles.c @ 1113
History | View | Annotate | Download (697 Bytes)
1 | 1113 | nparis | #include <stdlib.h> |
---|---|---|---|
2 | #include <math.h> |
||
3 | 1088 | nparis | |
4 | 1113 | nparis | |
5 | 1088 | nparis | float rayHits (double Or_x,double Or_y,double Oc_xdouble ,double Oc_y,double Vr_x,double Vr_y) |
6 | |||
7 | /* Or_x = Origin of ray, x-coordinate
|
||
8 | Or_y = Origin of ray, y-coordinate
|
||
9 | Oc_x = Origin of circle, x-coordinate
|
||
10 | Oc_y = Origin of circle, y-coordinate
|
||
11 | Vr_x = Direction of ray, x
|
||
12 | Vr_y = Direction of ray, y
|
||
13 | */
|
||
14 | |||
15 | { |
||
16 | if( ((2*Vr_x*(Or_x - Oc_x))^2 - 4*Vr_x*(Or_x - Oc_x)^2) < 0) // Discriminant < 0 |
||
17 | { |
||
18 | return -1; |
||
19 | } |
||
20 | |||
21 | if( ((2*Vr_x*(Or_x - Oc_x))^2 - 4*Vr_x*(Or_x - Oc_x)^2) = 0) // Discriminant = 0 |
||
22 | { |
||
23 | return -((2*Vr_x*(Or_x - Oc_x))^2 - 4*Vr_x*(Or_x - Oc_x)^2) / (2*Vr_x)); |
||
24 | } |
||
25 | |||
26 | 1113 | nparis | return -1; |
27 | |||
28 | 1088 | nparis | \ |
29 | } |