When finding an intersection of a line and a triangle I find the point on
the plane and then determine if it is in the triangle.
I have been reading some stuff which id supposed to do it more efficiently,
but it leaves me with barycentric coordinates (t,u,v).
I haven't used these before and couldn't find any information on converting
back to cartesian.
Sorry if this is a stupid question, but is it possible?
If so, how can I do it?
Your choice of names for the ordinates suggests you are actually using
the Moller-Trumbore ray-triangle intersection algorithm. In that case,
(t, u, v) are not barycentric coordinates. The barycentric coordinates
are (u, v, 1 - (u + v)), while t is the parameter of the ray. You can
use either to get the point of intersection (t is along the ray, the
barycentric coordinates are along the triangle). Barycentric coordinates
are useful to interpolate values along the triangle, position being just
Thanks for responding.
My apologies, you are right, I was looking at the Moller-Trumbore algorithm
and with a little further study I found that 't' wasn't one of the
In the case of intersecting a triangle with a ray, it is simple for me to
use 't' to find the Cartesian point because I already have the origin and
vector, however I'm also thinking ahead to textures on triangles that change
shape, interpolating normals when looking at a pixel in a triangle for
reflections etc., so this has created some interest for me in the
So, even though my original question is no longer urgent, I am still
interested in knowing how to convert from barycentric to cartesian if, for
example, I have a triangle vertices A,B,C, and barycentric coordinates (u,
v, 1 - (u + v))?
I must warn you though that maths is not one of my strong points, especially
converting from notation to algorithm, but I try.
Does wikipedia help:
I hadn't seen the one on trilinear before.
It certainly helps me understand more, but writing an algorithm to convert
to cartesian is still out of my grasp.
A barycentric triple (u, v, w), u + v + w = 1, has no meaning in itself,
you also need to know how these are related to the points. This relation
is defined by the one deriving the algorithm.
For example, it could be stated that a point P on the triangle ABC
P = uA + vB + wC
Given this relation, the conversion to cartesian is directly given. You
need to take a look at the paper or book you are using to get the
missing part of the barycentric coordinate definition.
> For example, it could be stated that a point P on the triangle ABC
> P = uA + vB + wC
> Given this relation, the conversion to cartesian is directly given.
Oh, is it that easy?
I couldn't see the forest for the trees.
Thanks Kaba, much appreciated.
You're welcome. Very nice paintings on your site.
Thanks for noticing.
Interesting problem you have at your site with the resampling of 100 x 100
That's got me thinking.