Jump to content

  • Log In with Google      Sign In   
  • Create Account

Point-Plane distance


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
3 replies to this topic

#1 cold_heats_.--.   Members   -  Reputation: 127

Like
0Likes
Like

Posted 27 August 2012 - 08:59 AM

Hello.
I am following WildBunny's tutorial regarding a simple physics engine :
http://www.wildbunny...es-for-dummies/
However, I have some trouble understanding this part :

"
for all particles i
{
  for all planes j
  {
	distance = P[i].x*Planes[j].a + P[i].y*Planes[j].b + Planes[j].c;

	if (distance < 0)
	{
	  // collision responce
	}
  }
}
What this code is doing is finding, by projection, how much of the vector from the plane to the particle is in the direction of the plane normal."

If every particle is determined by its (x,y) point, isn't this a vector from the origin to that point ?

This line :
"distance = P[i].x*Planes[j].a + P[i].y*Planes[j].b + Planes[j].c"
doesnt actually compute the dot product of the origin-point vector and plane normal rather than the plane-point(vector) and normal dot-product?

I drew some sketches so you can see my point.I am testing a particle against the plane who's normal isnt normalized .
[Sorry, I actually mean dot-product , not cross ] .

Posted Image
Posted Image
I know there's a flaw in my reasoning, but I dont seem to get it .

Edited by cold_heats_.--., 27 August 2012 - 09:55 AM.


Sponsor:

#2 Álvaro   Crossbones+   -  Reputation: 13907

Like
0Likes
Like

Posted 27 August 2012 - 09:32 AM

"Plane" is a really odd name for a line on a plane. Actually, I think those objects should be called half-planes, because they seem to be the sets of points that satisfy Ax+By+C<0.

I don't understand your question at all. There is no cross product in 2D. All the code is doing is checking which particles seem to violate some constraints, with each constraint expressed as a half plane of forbidden positions.

#3 cold_heats_.--.   Members   -  Reputation: 127

Like
0Likes
Like

Posted 27 August 2012 - 10:00 AM

@alvaro , the author does specify they are actually lines when we refer to 2D.
My question is why does he say he computes the dot product between the vector-from-the-plane-to-point and plane-normal , if the line
" distance = P[i].x*Planes[j].a + P[i].y*Planes[j].b + Planes[j].c; " calculates the dot product between the vector-from-the-origin-to-point and the plane-normal ?

#4 Álvaro   Crossbones+   -  Reputation: 13907

Like
0Likes
Like

Posted 27 August 2012 - 11:55 AM

We have already established that the author is not tremendously careful with language, so I wouldn't worry a whole lot about the exact wording. That said, he is basically right. The formula for the "the dot product between the vector-from-the-origin-to-point and the plane-normal" wouldn't have `+ Planes[j].c]' at the end.




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS