找回密码
 欢迎注册
查看: 21290|回复: 9

[讨论] 圆柱轴线求解

[复制链接]
发表于 2021-4-12 15:45:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?欢迎注册

×
已知圆柱面上四个点$A,B,C,D$,及圆柱的半径r, 求圆柱的轴线。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2021-4-24 08:09:43 | 显示全部楼层
第一个问题,mathematica ,Maple, AutoCAD 这些软件不能解决这样的问题吗?

第二个问题,圆柱的半径是不是多余条件?四个点不是已经可以确认轴线与半径了吗?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2021-4-24 09:00:56 | 显示全部楼层
点到直线的距离公式是有的. 比如设直线方程的截距式为$ax-by+d=0, cy-az+e=0, bz-cx+f=0$, 那么 点${x,y,z}$到直线的距离$l = \sqrt{\frac{(ax-by+d)^2+(cy-az+e)^2+(bz-cx+f)^2}{a^2+b^2+c^2}}  =r$

所以,为了解方程,我们可以设函数$g(x,y,z)=(a x-b y+1)^2+(-a z+c y+1)^2+(b z-c x+1)^2-r^2 (a^2+b^2+c^2)$, 问题就成了 解四元二次多项式方程组了 $g(x_i,y_i,z_i) = 0. i\in Z, 1<=i<=4$

这种情况,我们就不指望有简洁的代数解了. 但是对于给定的数值解,还是非常容易解出来的,比如
  1. {d,e,f}={1,1,1};
  2. g[x_,y_,z_]:=(a x-b y+d)^2+(c y-a z+e)^2+(b z-c x+f)^2-R(a^2+b^2+c^2);
  3. pts=RandomInteger[{-100,100},{4,3}];
  4. Solve[g @@@ pts == 0,{a,b,c,R},Reals]
复制代码

随机跑几遍,基本上发现解有0,2,4组.

.

点评

对对对, 应该设 $\frac{x-x_0}{a}=\frac{y-y_0}{b}=\frac{z-z_0}{c}$  发表于 2021-4-25 18:57
似乎并不能直接令$d=e=f=1$, 空间直线得用4个参数表示。  发表于 2021-4-25 17:59
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2021-4-24 09:30:39 | 显示全部楼层
直线方程应该表示为两个平面交线即可,不需要三个平面方程。
但是如果我们采用参数方程会更加方便。
假设轴线上有任意一点$X_0=(x_0,y_0,z_0)$,其方向为$\vec{D}=(a,b,c)$,于是轴线上任意一点可以写成参数形式$(x_0+at,y_0+bt,z_0+ct)$.这里虽然有六个参数$x_0,y_0,z_0,a,b,c$,但是实际上只有四个自由度, 并且为了计算方便,我们可以限制$a^2+b^2+c^2=1$,也就是方向$(a,b,c)$为单位向量。
于是任意一点$A=(x,y,z)$,我们可以先计算向量$\vec{X_0A}$在方向$\vec{D}$上投影为$d=a(x-x_0)+b(y-y_0)+c(z-z_0)$.
于是根据勾股定理,A到直线距离为$|AX_0|^2 - d^2=(x-x_0)^2+(y-y_0)^2+(z-z_0)^2-(a(x-x_0)+b(y-y_0)+c(z-z_0))^2$.
切换到本题场景,那么给定四个点和半径,我们得到四条关于变量$x_0,y_0,z_0,a,b,c$的方程。通常情况我们可以任意指定$z_0$,然后加上$a^2+b^2+c^2=1$的限制,就可以解出所有变量。

点评

$\frac{x-x_0}{a}=\frac{y-y_0}{b}=\frac{z-z_0}{c}$  发表于 2021-4-24 13:14
从代数上就是你这里的参数形式里的 t消元后的表达。C(3,2)=3 个等式。从几何上是三个坐标平面的投影截距  发表于 2021-4-24 13:10
是如何定义截距的?  发表于 2021-4-24 10:17
我设的是空间直线的截距式 表达形式,:)  发表于 2021-4-24 09:34
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-3-29 09:53 , Processed in 0.063273 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表