Project

General

Profile

Revision 1177

Even more updates to circles

View differences:

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