Variable below zero but if statement doesn't grab?

TheDGuy via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sun Dec 27 08:01:37 PST 2015


On Sunday, 27 December 2015 at 16:00:34 UTC, jkpl wrote:
> On Sunday, 27 December 2015 at 15:53:55 UTC, TheDGuy wrote:
>> Any idea what i am doing wrong?
>> https://www.youtube.com/watch?v=j_VCa-5VeP8
>
> You could post the code also, personnaly I'm always almost at 2 
> meters from my screen, with zoom, so I can't read the code...

Sry:

		Vector3D v = ray.origin.sub(this.center).normalize();
		double a = ray.direction.dot(ray.direction);
		double b = 2.0 * ray.direction.dot(v);
		double c = v.dot(v) - (this.radius * this.radius);
		double discriminant = (b*b) - (4.0*a*c);
		if(discriminant > 0){
			double x1 = (-b - sqrt(discriminant)) / (2.0*a);
			double x2 = (-b + sqrt(discriminant)) / (2.0*a);
			if((x1 >= 0) && (x2 >= 0)){
				return x1;
			}
			if((x1 < 0) & (x2 >= 0)){
				return x2;
			}
			return -1.0;
		}else{
			return -1.0;
		}


More information about the Digitalmars-d-learn mailing list