MATLAB Answers

## Barycentric Coordinates of a spherical triangle

Asked by Alec Day

### Alec Day (view profile)

on 10 Jul 2018
Latest activity Edited by Anton Semechko

### Anton Semechko (view profile)

on 10 Jul 2018
Hello,
If I have a triangle constructed in 2D with the vertices (x1,y1) (x2,y2) (x3,y3) it is straight forward to find the barycentric coordinate of any point P within the triangle using tsearchn or equivalent and then translate this coordinate to any other 2D triangle using barycentricToCartesian.m
However what I would like to do is to relate any point P inside a 2D triangle to a 3D vector n for a point in a spherical triangle mapped onto a unit sphere. I think a method would be to obtain the barycentric coordinates of any point in a spherical triangle to relate the two triangles, but i'm not sure if this exists.

#### 0 Comments

Sign in to comment.

## 1 Answer

### Anton Semechko (view profile)

Answer by Anton Semechko

### Anton Semechko (view profile)

on 10 Jul 2018
Edited by Anton Semechko

### Anton Semechko (view profile)

on 10 Jul 2018

This can be done in four steps:
1) Compute linear transformation (T) that maps triangle A to its counterpart B on the sphere.
2) Use T to map point of interest Pa in A to B to get Pb=T(Pa)
3) Project Pb onto the sphere to get pb=Pb/norm(Pb)
4) Solve for spherical barycentric coordinates (u,v,w) of pb relative to B. Do to this suppose Q=[q1 q2 q3] is a 3-by-3 matrix containing coordinates of the vertices of B along columns, then p2(:)=Q*[u;v;w]. Note that unlike planar barycentric coordinates which always sum to unity, sum of the spherical barycentric coordinates can exceed one.

#### 0 Comments

Sign in to comment.