利用python计算两个平面相交直线的方向向量

calVectorFrom2Planes

功能

利用两平面的法向量做”叉乘“运算获得两平面交线的方向向量。

原理

如图所示,两平面相交关系为:

https://gitee.com/zhaoqiushan/pic/raw/master/3418f486ea4e385cf998b6fb4a8aed3.png

图中 n 1 ⃗ \vec{n_1} n1 为平面1的法向量, n 2 ⃗ \vec{n_2} n2 为平面2的法向量, l ⃗ \vec{l} l 为两平面交线的方向向量。根据丘维声所著《解析几何(第三版)》第30-36页可知,该方向向量可由两平面法向量进行叉乘运算得到,公式为:
l ⃗ = n 1 ⃗ × n 2 ⃗ \vec{l}=\vec{n_1}\times\vec{n_2} l =n1 ×n2
由平面一般式方程可知,平面的法向量为: n ⃗ = ( a , b , c ) \vec{n}=(a,b,c) n =(a,b,c),利用两相交平面的方程参数即可进行法向量”叉乘“,获得交线的方向向量 l ⃗ = ( m , n , p ) \vec{l}=(m,n,p) l =(m,n,p),利用该直线上任意一点坐标 ( x 1 , y 1 , z 1 ) (x_1,y_1,z_1) (x1,y1,z1)可得到该支线的”点法式“方程:
x − x 1 m = y − y 1 n = z − z 1 p \frac{x-x_1}{m}=\frac{y-y_1}{n}=\frac{z-z_1}{p} mxx1=nyy1=pzz1

使用

输入

两相交平面方程一般式的参数 P a r a m 1 ( a 1 , b 1 , c 1 , d 1 ) Param_1(a_1,b_1,c_1,d_1) Param1(a1,b1,c1,d1) P a r a m 2 ( a 2 , b 2 , c 2 , d 2 ) Param_2(a_2,b_2,c_2,d_2) Param2(a2,b2,c2,d2)

输出

两平面交线方向向量 l ⃗ ( m , n , p ) \vec{l}(m,n,p) l (m,n,p)

DEMO

import geomeas as gm
import numpy as np

Param_1 = np.array([0, 0, -4361.9337, 362040.4971])
Param_2 = np.array([-2180.41, 6939.63, 2165.499, -283785.5822])

print(gm.Vector().calVictorFrom2Planes(Param_1, Param_2))

代码链接

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hunter206206

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值