0xAA55 发表于 2014-6-19 14:57:55

三维空间某点到平面距离的公式


C语言表达:fabs(A*x+B*y+C*z+D)/sqrt(A*A+B*B+C*C)VB语言表达:Abs(A*x+B*y+C*z+D)/Sqr(A*A+B*B+C*C)汇编表达:假定A、B、C、D、x、y、z都指向double双精度浮点数类型的变量fld   dword[A]   ;载入A
fmul    qword[x]   ;乘以x
fld   qword[B]   ;载入B
fmul    qword[y]   ;乘以y
fadd                ;得到A*x+B*y
fld   qword[C]   ;载入C
fmul    qword[z]   ;乘以z
fadd                ;得到A*x+B*y+C*z
fadd    qword[D]   ;得到A*x+B*y+C*z+D
fabs                ;取绝对值得到fabs(A*x+B*y+C*z+D)
fld   qword[A]   ;载入A
fmul    st0         ;乘以A
fld   qword[B]   ;载入B
fmul    st0         ;乘以B
fadd                ;得到A*A+B*B
fld   qword[C]   ;载入C
fmul    st0         ;乘以C
fadd                ;得到A*A+B*B+C*C
fsqrt               ;开平方根得到sqrt(A*A+B*B+C*C)
fdiv                ;最终得到fabs(A*x+B*y+C*z+D)/sqrt(A*A+B*B+C*C)的计算结果。
;fst    qword;存储运算的结果到内存
页: [1]
查看完整版本: 三维空间某点到平面距离的公式