两个圆柱形管的相贯存在4种形式,正交、偏置、斜交和偏置斜交。

本文仅讨论偏置情况下的计算方法。

建立如下坐标系,圆柱1的轴线为Z轴,圆柱2的轴线与Y轴平行,通过右手法则确定X轴,圆柱2的轴线在XOY平面上。圆柱1半径为a,圆柱2半径为b,圆柱2的轴线相较于Y轴偏移距离为ΔX,其中b > a

采用极坐标系表示两个圆柱面和法线矢量:

∑ 1 \sum_1 ∑1​: x 1 = a cos ⁡ θ x_1 = a\cos \theta x1​=acosθ, y 1 = a sin ⁡ θ y_1 = a\sin \theta y1​=asinθ, z 1 = u z_1 = u z1​=u;
法向量: n x 1 = cos ⁡ θ , n y 1 = sin ⁡ θ , n z 1 = 0 n_{x1} = \cos \theta, n_{y1} = \sin \theta, n_{z1}=0 nx1​=cosθ,ny1​=sinθ,nz1​=0

∑ 2 \sum_2 ∑2​: x 2 = Δ x + b cos ⁡ φ x_2 = \Delta x +b\cos \varphi x2​=Δx+bcosφ, y 2 = v y_2 = v y2​=v, z 2 = b sin ⁡ φ z_2 = b \sin \varphi z2​=bsinφ
法向量: n x 2 = cos ⁡ φ , n y 2 = 0 , n z 2 = sin ⁡ φ n_{x2} = \cos \varphi, n_{y2} =0, n_{z2}= \sin \varphi nx2​=cosφ,ny2​=0,nz2​=sinφ

相贯线同时位于两个圆柱面上,即满足
x 1 = x 2 , y 1 = y 2 , z 1 = z 2 x_1=x_2, y_1=y_2, z_1=z_2 x1​=x2​,y1​=y2​,z1​=z2​

由于a, b, Δ x \Delta x Δx为已知,且a < b,则 θ \theta θ的取值范围为( 0 − 2 π 0-2\pi 0−2π),根据需要的点距可以选择不同的步长。

可解出相贯线的空间坐标关于 θ \theta θ的方程如下:

x = a cos ⁡ θ x = a \cos \theta x=acosθ
y = a sin ⁡ θ y = a \sin \theta y=asinθ
z = b 2 − ( x − Δ x ) 2 z = \sqrt{b^2-(x-\Delta x)^2} z=b2−(x−Δx)2 ​

python实现如下:

import math
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D# 圆柱1半径:radius_1;  偏置距离:offset
# 圆柱2半径:rasius_2; (直径大)
# 点距: theta;(按弧度)class IntersectingLine():def __init__(self):self.radius_1 = 8.0self.radius_2 = 30.0self.center_offset = 10.0self.step_theta = 0.04# 计算空间坐标,保存在 ndarray中def calculate_coordinates(self, r1, r2, offset, theta):shape = ((int)(math.pi * 2 / theta), 3)coords = np.zeros(shape, dtype=float)for i in range(shape[0]):coords[i][0] = r1 * math.cos(i*theta)coords[i][1] = r1 * math.sin(i*theta)coords[i][2] = math.sqrt(r2*r2 - math.pow((coords[i][0] - offset), 2))return coords# 根据坐标点绘制三维散点图def plot_coordinates(self, coordinates):fig = plt.figure()ax = Axes3D(fig)ax.view_init(elev=45, azim=135)ax.scatter3D(coordinates[:,0], coordinates[:,1], coordinates[:,2], cmap='Blues')plt.show()

绘制结果如下:

偏置圆柱体相贯线的空间坐标计算相关推荐

  1. Unity3D绘制两圆柱体相贯线

    1 相贯线   项目中需要用代码去绘制两个圆柱体相贯线,花了两天时间可算整明白怎么画了.国内有关这方面的文章不多,所以花了很多时间,我这里总结一下,如果能够帮助到需要的同学,也算善莫大焉.   相贯线 ...

  2. 通过继承实现圆柱体面积体积的计算

    一.编写一个圆类Circle,该类拥有: ①一个成员变量 Radius// 存放圆的半径:私有,浮点型 ②两个构造方法 Circle( )                 // 将半径设为0 Circ ...

  3. python计算圆柱体体积代码_继承实现圆柱体面积体积的计算

    一.编写一个圆类Circle,该类拥有: ①一个成员变量 Radius// 存放圆的半径:私有,浮点型 ②两个构造方法 Circle( )                 // 将半径设为0 Circ ...

  4. 【opencv】双目视觉下空间坐标计算/双目测距 6/13更新

    最近是多么的崩溃,昨天中了最新的cerber病毒,把我的电脑资料一扫而空,虽然有备份,但是已经是一周前的了.不得不加班加点补回来. 这篇博客,这是我第二次写,我凭着记忆,重新写一遍之前写的,因为之前写 ...

  5. 用python计算圆柱体的体积和表面积_Java圆柱体表面积和体积计算代码实例

    题目描述 Java编程实现圆柱体表面积和体积的计算,要求从键盘上输入底面圆的半径和圆柱体的高,然后输出结果. 题目分析 首先定义Circle类,然后在main方法中创建Circle类的对象c,利用对象 ...

  6. python怎么求圆柱表面积半径和高由键盘输入_Java圆柱体表面积和体积计算代码实例...

    题目描述 Java编程实现圆柱体表面积和体积的计算,要求从键盘上输入底面圆的半径和圆柱体的高,然后输出结果. 题目分析 首先定义Circle类,然后在main方法中创建Circle类的对象c,利用对象 ...

  7. 双目视觉下空间坐标计算/双目测距

    摄像机矩阵由内参矩阵和外参矩阵组成,对摄像机矩阵进行QR分解可以得到内参矩阵和外参矩阵. 内参包括焦距.主点.倾斜系数.畸变系数 (1) 其中,fx,fy为焦距,一般情况下,二者相等,x0.y0为主点 ...

  8. 双目视觉焦距_第七节、双目视觉之空间坐标计算

    在上一节我们已经介绍了如何对相机进行标定.然后获取相机的内部参数,外部参数. 内参包括焦距.主点.倾斜系数.畸变系数: $$M=\begin{bmatrix} f_x & γ & u_ ...

  9. 射线法进行地理空间坐标计算

    移动端应用开发过程中经常需要计算地理空间关系,例如:快递员/外卖员是否已抵达小区附近,办公打卡签到时是否在公司周边,共享单车是否停放在指定区域或禁停区等等. 前面我们介绍过如何使用MySQL进行地理坐 ...

最新文章

  1. Java Review - ArrayList 源码解读
  2. 成功解决ModuleNotFoundError: No module named 'utils'
  3. C# Serializable(序列化)
  4. outlook恢复已删除邮件
  5. 改进你的代码-扩展了一下IEnumerableT
  6. cmd在执行hadoop version时出现系统找不到指定的路径。 Error: JAVA_HOME is incorrectly set
  7. mysql 日期函数大全_MYSQL 日期函数大全
  8. java 双循环是如何执行的_java – 双循环赛
  9. Javascript设计网页中的下拉菜单
  10. DSP控制的电力线通信模拟前端接口设计
  11. GCF(3)---GCF简介
  12. 《Proof of Federated Learning: A Novel Energy-recycling Consensus Algorithm》精读
  13. 微信公众号与微信小程序相辅相成
  14. opencv canny源码解析_行人检测 基于 OpenCV 的人体检测
  15. 2021年北京积分落户名单公布了,爬了两个多小时得到了所有数据,有了惊人的发现(附源码)
  16. 智慧网 分享DCT,DST,matlab
  17. java.io.IOException: Jenkins Mailer Plugin v1.23 failed to load.(出现Jenkins插件安装报错并且无法成功等问题)
  18. telnet重启计算机,win7系统重启Telnet命令的操作方法
  19. Java 泛型中的 ? T K V E等代表的意思
  20. kiss原则包括什么_kiss原则包括职场沟通相关阅读-kiss原则包括职场沟通文章阅读-123文学网...

热门文章

  1. FileSaver.js 介绍
  2. UIImageView 作为tableHeaderView 遮挡cell,无情无耻无理取闹
  3. 素指轻弹,霜华清白,
  4. 分布式一致性算法介绍
  5. SparkSQL ETL
  6. speechSynthesis.speak()在chrome不执行问题
  7. oracle standby logfile,standby redo log 状态全是UNASSIGNED
  8. 前端百题斩【015】——快速手撕call、apply、bind
  9. INS/GNSS组合导航(四)卡尔曼滤波比较之KF/EKF/UKF/PF
  10. 音乐制作软件中文版含音色库-Cakewalk Sonar Platinum v23.10 WiN