3D图形学基础学习笔记(1)-Plane

Define an plane

An 3D plane can be define in many ways, however all of them can be derived from an simple case where we have three points.

One of the common ways we define an plane is with the following equation:
A x + B y + C z + D = 0 Ax + By + Cz + D = 0 Ax+By+Cz+D=0

如果已知平面内3个点p0,p1,p2,那么公式的4个参数可以这样计算:

  1. 计算Vector u = p1 - p0,v = p2 - p0

  2. 计算两向量cross product :n = u×v

  3. 将n归一化

  4. 假设归一化后的n=(nx, ny, nz),那么可以计算出:

    • A = nx
    • B = ny
    • C = nz
  5. D的计算可以将一个平面上的已知点(如p0)代入平面公式得到:

    D = -(Ap0x + Bp0y + C*p0z) = - n *(dot product) p0
    在这里插入图片描述

Compute the signed distance to a plane

计算三维空间中平面到一个点的带符号距离,可以将点的坐标值代入平面定义公式的左边,如平面到空间一个点r(rx, ry, rz)的距离dist为:

dist = A * rx + B * ry + C * rz + D = n * r + D

dist的绝对值即距离值,dist的正负号表示点在平面的哪一边:

  • 正号表示点在平面法向量指向的同侧
  • 负号表示点在平面法向量指向的反侧

Project an point to plane

在这里插入图片描述

假设点q是三维空间一个点,dist为点q到平面的singed distance,计算q到平面的投影点p方法如下:

p = q - dist * n

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值