三维空间某点到平面距离的公式
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]