【问题标题】:Bounding rectangle for a triangle and normalized coordinates三角形和归一化坐标的边界矩形
【发布时间】:2018-06-03 22:38:13
【问题描述】:

我正在研究一些计算机图形的东西,但无法找到一个问题的解决方案:

我在 3D 空间中有三个点,每个点都用 (x,y,z) 元组定义。三个点一起形成一个三角形。设点名是 A、B 和 C,所以三角形是 ABC。

现在我想形成一个边界矩形,使 AC 是边之一。 B点位于矩形的对边。现在我想将矩形内的任意点 (p) 映射到标准化的 UV 坐标,所以:

  • U 表示点 p 到 AC 向量的投影距离 A 的距离。
  • V 代表矩形的正交部分。有点难以解释,但请看图片。

不管怎样,我觉得我很擅长找到你:

vec3 AC = vec3(C - A);
vec3 Ap = vec3(p - A);
float u = dot(Ap, AC)/dot(AC, AC);

但我不知道如何找到 V。 当我使用 GLSL 时,如果答案将使用点、十字或任何 GLSL 具有的矩阵东西,那就太受欢迎了。

Clarification picture

【问题讨论】:

    标签: vector glsl rectangles normals


    【解决方案1】:

    找到uB

    uB = dot(AB, AC)/dot(AC, AC);
    

    BAC的投影:

    B' = A + uB * AC / length(AC)  
    

    现在我们有了 B'B 向量,可以在其上进行类似于 AC 上的投影的投影并计算 v

    【讨论】:

      猜你喜欢
      • 2017-02-19
      • 2013-02-07
      • 2013-03-12
      • 2015-01-11
      • 2021-12-25
      • 1970-01-01
      • 1970-01-01
      • 2013-09-10
      • 2010-10-11
      相关资源
      最近更新 更多