Revision 1177
Even more updates to circles
branches/simulator/projects/simulator/simulator/core/world.c | ||
---|---|---|
59 | 59 |
|
60 | 60 |
point_t Or = ray->p; |
61 | 61 |
point_t Oc = ((circle_t*)(obj->props))->center; |
62 |
point_t Vr = ray->d; |
|
62 |
//point_t Vr = ray->d;
|
|
63 | 63 |
point_t Vr = {ray->p.x+cos(ray->d),ray->p.y+sin(ray->d)}; |
64 | 64 |
|
65 | 65 |
|
66 |
if( ((2*Vr.x*(Or.x - Oc.x))^2 - 4*Vr.x*(Or.x - Oc.x)^2) < 0) // Discriminant < 0
|
|
66 |
if( ((2*Vr.x*(Or.x - Oc.x))*(2*Vr.x*(Or.x - Oc.x)) - 4*Vr.x*(Or.x - Oc.x)*(Or.x - Oc.x)) < 0) // Discriminant < 0
|
|
67 | 67 |
{ |
68 | 68 |
return -1; |
69 | 69 |
} |
70 | 70 |
|
71 |
if( ((2*Vr.x*(Or.x - Oc.x))^2 - 4*Vr.x*(Or.x - Oc.x)^2) = 0) // Discriminant = 0
|
|
71 |
if( ((2*Vr.x*(Or.x - Oc.x))*(2*Vr.x*(Or.x - Oc.x)) - 4*Vr.x*(Or.x - Oc.x)*(Or.x - Oc.x)) = 0) // Discriminant = 0
|
|
72 | 72 |
{ |
73 |
return -((2*Vr.x*(Or.x - Oc.x))^2 - 4*Vr.x*(Or.x - Oc.x)^2) / (2*Vr.x));
|
|
73 |
return -((2*Vr.x*(Or.x - Oc.x))*(2*Vr.x*(Or.x - Oc.x))2 - 4*Vr.x*(Or.x - Oc.x)*(Or.x - Oc.x)) / (2*Vr.x));
|
|
74 | 74 |
} |
75 | 75 |
|
76 | 76 |
|
Also available in: Unified diff