首页 > 其他分享 >dwg解析-样条曲线拟合点解析(中望CAD导出)

dwg解析-样条曲线拟合点解析(中望CAD导出)

时间:2024-10-09 13:11:10浏览次数:1  
标签:曲线拟合 tangents SetValue gp interp flags dwg 解析

dwg解析-样条曲线拟合点解析(中望CAD导出)

中望CAD导出的dwg文件,其中样条曲线拟合点解析出的结果出拟合点和起始点的方向,
解析代码如下:

/ harray is the Handle(TColgp_HArray1OfPnt) containing the sampled circle points in the YZ plane at PI/4, PI/2, 3/2PI and 2PI

GeomAPI_Interpolate interp(harray, Standard_True, 0.001);

TColgp_Array1OfVec tangents(1, 4);

tangets.SetValue(1, gp_Vec(0, -1, 0));

tangents.SetValue(2, gp_Vec(0, 0, -1));

tangents.SetValue(3, gp_Vec(0, 1, 0));

tangents.SetValue(4, gp_Vec(0, 0, 1));

TColstd_HArray1OfBoolean flags(1,4);

flags.SetValue(1, Standard_True);

flags.SetValue(2, Standard_True);

flags.SetValue(3, Standard_True);

flags.SetValue(4, Standard_True);

interp.Load(tangents, flags.GetHandle());

interp.Perform();
	int fitlen = fitPts->Count;
	Handle(TColgp_HArray1OfPnt) arry = new TColgp_HArray1OfPnt(1, fitlen);
	TColgp_Array1OfVec tangents(1, fitlen);
	Handle_TColStd_HArray1OfBoolean farray = new TColStd_HArray1OfBoolean(1, fitlen);
	for (int i = 0; i < fitlen; i++)
	{
		arry->SetValue(i + 1, gp_Pnt(fitPts[i]->X, fitPts[i]->Y, fitPts[i]->Z));
		tangents.SetValue(i + 1, gp_Vec(dirs[i]->X, dirs[i]->Y, dirs[i]->Z));
		farray->SetValue(i + 1, true);
	}
	GeomAPI_Interpolate interp(arry, false, 0.001);
	interp.Load(tangents, farray);
	interp.Perform();
	Handle(Geom_BSplineCurve) theSpline = interp.Curve();
	BRepBuilderAPI_MakeEdge nativeHandle_MakeEdge = BRepBuilderAPI_MakeEdge(theSpline);
	TopoDS_Edge  tmp = nativeHandle_MakeEdge.Edge();

参考链接
参考链接

标签:曲线拟合,tangents,SetValue,gp,interp,flags,dwg,解析
From: https://www.cnblogs.com/yzxxty/p/18454012

相关文章

  • [快速阅读八] HDR->LDR:Matlab中tonemapfarbman函数的解析和自我实现。
    最近受朋友的委托,想自己实现Matlab里的一个HDR转LDR的函数,函数名是tonemapfarbman,乘着十一假期,稍微浏览下这个函数,并做了一点C++的实现和优化。为了看到这个函数的效果,需要至少matlab R2018b及其以上的版本。 首先,我们下载了matlab帮助文档中提到的该算法对应的论......
  • IntelliJ IDEA(IDEA)下无法解析 ApplicationContext 中的方法 getBean
    只需要:删除过程目录下的.idea文件后,关闭IDEA,再重新打开IDEA即可解决“getBean”报红问题。(注意:前提是要保证有依赖(Spring核心库配置正确、依赖版本兼容)、配置正确(ApplicationContext 创建正确、有 Bean定义、扫描包正确)、编码问题(导入正确的类、方法调用正确))以上原理:.i......
  • 解析 Keras 图像预处理导入路径及问题探讨
    一、检查导入路径是否正确确保你的导入语句是正确的。对于TensorFlow2.x及以上版本,正确的导入方式可能如下:fromtensorflow.keras.preprocessing.imageimportImageDataGenerator如果你的TensorFlow版本较旧或者安装有问题,可能需要调整导入路径。二、简单方法(查找正......
  • 2020CSP-J普及组第二轮试题及解析(第二题直播获奖live)
    参考程序代码:#include<bits/stdc++.h>usingnamespacestd;constintN=610;intn,w,m;inta[N];intmain(){ scanf("%d%d",&n,&w); intx; for(inti=1;i<=n;i++) { scanf("%d",&x);//读入该分数 a[x]++;//该分数放到桶里 ......
  • 短视频矩阵SaaS系统源代码开发部署步及技术解析
    短视频矩阵源码开发部署一般包括以下步骤:安装开发环境:根据具体的短视频矩阵源码开发语言和框架,需要安装相应的开发环境,例如Python、Node.js、Django、React等。下载短视频矩阵源码:从源码存储库或官方网站下载最新的短视频矩阵源码。配置数据库:根据短视频矩阵源码的需求,选......
  • Spring Cloud全解析:链路追踪之springCloudSleuth简介
    springCloudSleuth简介链路追踪?什么是链路追踪?就是将一次分布式请求还原成调用链路,将一次分布式请求的调用情况集中展示,如各个服务节点的耗时、具体请求的服务器、各节点的请求状态等,主要是用于分布式系统进行问题定位SpringCloudSleuthSpringCloudSleuth是SpringCloud提供的......
  • mysql join语法解析
     MySQL支持以下JOIN语法用于SELECT语句和多表DELETE和UPDATE语句中的table_references部分:table_references:查询中涉及的一个或多个表的引用,可以是简单表名或JOIN表达式的组合。escaped_table_reference[,escaped_table_reference]...escaped_table_ref......
  • Spring JdbcTemplate与NamedJdbcTemplate模板的实战案例与优化解析
    前言基于SpringJdbcTemplate来实现用户的增删改查案例,以及NamedJdbcTemplate模版的优化案例,和SpringJDBC相关支持类使用。 基本案例实现创建JavaWeb项目,使用JDBCTemplate对MySQL用户表进行增删改查操作。第一步:创建JavaWeb项目,创建数据库表,配置pom.xml文件t_user:......
  • 手写mybatis之数据源的解析、创建和使用
    前言在上一章节我们解析XML中的SQL配置信息,并在代理对象调用DefaultSqlSession中进行获取和打印操作,从整个框架结构来看我们解决了对象的代理、Mapper的映射、SQL的初步解析,那么接下来就应该是连库和执行SQL语句并返回结果了。那么这部分内容就会涉及到解析X......
  • LeetCode 209 Minimum Size Subarray Sum 题目解析和python代码
    题目:Givenanarrayofpositiveintegersnumsandapositiveintegertarget,returntheminimallengthofasubarraywhosesumisgreaterthanorequaltotarget.Ifthereisnosuchsubarray,return0instead.Example1:Input:target=7,nums=[2,3,......