You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VTK非结构化网格:如何在弧点周围绘制环形圈构建圆柱弯管

3D圆柱弯管构建:弧线上环形截面的方向校正

已完成的基础步骤

  • 基于3D空间中两个对角点,计算对应正方形的顶点,选取其中一个顶点作为圆心,绘制连接两个对角点的弧线
  • 弧线绘制核心代码:
def draw_square_from_diagonal_points(point1, point2):
    # 提取两个对角点的坐标
    x1, y1,z1 = point1
    x2, y2,z2 = point2

    # 计算对角线中点
    mx = (x1 + x2) / 2
    my = (y1 + y2) / 2

    # 计算点1到中点的差分向量
    dx = x1 - mx
    dy = y1 - my

    # 求解正方形的第四个顶点
    bx = mx + dy
    by = my - dx

    # 定义正方形的四个顶点
    pointA = (x1, y1)
    pointB = (bx, by)
    pointC = (x2, y2)
    pointD = (mx - dy, my + dx)  # 与pointB相对的第四个顶点
    return pointD 
import math

def draw_arc(radius , center,num_points=16,circle_radius=1, cross_sections_radius = 0.5, circle_points=8):
    radian_angle = 2 * math.pi / num_points
    arc_points = []
    circle_pts = []
    for i in range(num_points):
        if i == num_points/4 + 1:
            break
        cal_angle = i * radian_angle
        xx = center[0] + radius * math.cos(cal_angle)
        yy = center[1] + radius * math.sin(cal_angle)
        zz = center[2]
        arc_points.append([xx,yy,zz])
    return arc_points

(弧线绘制逻辑:通过对角点确定正方形顶点作为圆心,生成连接两点的90度弧线)

核心需求

需要在弧线上的每个点周围绘制环形截面,这些环形点的方向必须随弧线的弯曲角度同步调整,最终拼接成平滑的圆柱弯管结构:弧线为中心轴线,每个环形截面始终垂直于轴线的切线方向,相邻截面的对应点可连接成连续的弯管壁。

现有尝试的问题

已编写代码绘制弧点周围的环形点,但生成的环形方向固定,未随弧线弯曲调整,无法满足弯管拼接要求,代码如下:

import math

def add_spherical_points(center, radius):
    phi_angle = math.pi / 6 # 60度角
    circular_points = []
    newpts=[]
    for i in range(12):
        delta_angle = 2 * math.pi * i / 12
        x = center[0] + radius * math.sin(phi_angle) * math.cos(delta_angle) 
        y = center[1] + radius * math.sin(phi_angle) * math.sin(delta_angle)
        z = center[2] + radius * math.cos(phi_angle)
        circular_points.append([x,y,z])
    return circular_points

(现有效果:所有环形点的朝向一致,未随弧线的切线方向改变,导致无法形成连续的弯管壁)


内容的提问来源于stack exchange,提问作者Ans shakeel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 21:35:24