pythonOcc曲线均分的实现(转)

假设有一条曲线的边TopoDS_Edge,记为aEdge

from OCC.Core.BRepGProp import brepgprop_LinearProperties
from OCC.Core.GProp import GProp_GProps
from OCC.Core.GeomAdaptor import GeomAdaptor_Curve
from OCC.Core.GCPnts import GCPnts_UniformAbscissa

aCurve = BRep_Tool.Curve(aEdge)[0] # 先把它转换为Geom_Curve

system = GProp_GProps()

brepgprop_LinearProperties(aEdge, system)
# print("system.Mass(): ", system.Mass())
nb_ = system.Mass() / step # step是步长,这句话的意思是等步长平分周长,nb_是平分的点的数目
gac = GeomAdaptor_Curve(aCurve)
ua = GCPnts_UniformAbscissa(gac, nb_)
if ua.IsDone():
n = ua.NbPoints()
pts = []
for count in range(1, n + 1): # 索引从1开始,到n结束
p = gp_Pnt()
aCurve.D0(ua.Parameter(count), p) # 获取坐标
pts.append(p)
————————————————
版权声明:本文为CSDN博主「rayyy9」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/reyyy/article/details/108094279

posted @   格美格美  阅读(201)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
点击右上角即可分享
微信分享提示