找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: yzf_fs

[求助] 请问如何判断多段线中圆弧是顺时针还是逆时针啊?

[复制链接]

已领礼包: 13个

财富等级: 恭喜发财

发表于 2013-8-16 22:10:59 | 显示全部楼层
yzf_fs 发表于 2013-8-16 22:07
是有两个圆弧啊,但是就只能识别一个圆弧的坐标和半径,segType(m)怎样打
acutPrintf(_T("segType(m)"% ...

你试试转换成整形打印。

另外,你上面的图片,圆心明显是两个啊,半径相同。

点评

可能画的不好,你误会了吧,事实上两个圆弧大小和半径都是不一样的,但是程序出来的就是只有一个相同结果,整形也不行  详情 回复 发表于 2013-8-16 22:23
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-16 22:23:59 | 显示全部楼层
LoveArx 发表于 2013-8-16 22:10
你试试转换成整形打印。

另外,你上面的图片,圆心明显是两个啊,半径相同。

可能画的不好,你误会了吧,事实上两个圆弧大小和半径都是不一样的,但是程序出来的就是只有一个相同结果,整形也不行

点评

if (pPoly->segType(m)==AcDbPolyline::kArc) { acutPrintf(_T("第%d个圆心坐标为:%.3f,%.3f,半径为:%4.3f\n"),m,ptCen.x,ptCen.y,R); } 你上面的代码,分支里面,如果是圆弧了,你打印的圆  详情 回复 发表于 2013-8-16 22:50
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 13个

财富等级: 恭喜发财

发表于 2013-8-16 22:50:06 | 显示全部楼层
yzf_fs 发表于 2013-8-16 22:23
可能画的不好,你误会了吧,事实上两个圆弧大小和半径都是不一样的,但是程序出来的就是只有一个相同结果 ...

if (pPoly->segType(m)==AcDbPolyline::kArc)
  {      
    acutPrintf(_T("第%d个圆心坐标为:%.3f,%.3f,半径为:%4.3f\n"),m,ptCen.x,ptCen.y,R);
  }


你上面的代码,分支里面,如果是圆弧了,你打印的圆心 ptcen 值从哪来的? 外面的? 你在这里要计算ptcen和R啊。

点评

不好意思,删注释时候给删了 double R[10]; AcGePoint2d ptCen[10]; if (pPol->segType(m)==AcDbPolyline::kArc) { R[m]=arc.radius(); ptCen[m]=arc.center(); pPol->getPointAt(m,pt  详情 回复 发表于 2013-8-17 09:27
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-17 09:27:47 | 显示全部楼层
LoveArx 发表于 2013-8-16 22:50
if (pPoly->segType(m)==AcDbPolyline::kArc)
  {      
    acutPrintf(_T("第%d个圆心坐标为:%.3f,% ...

不好意思,删注释时候给删了
double R[10];
AcGePoint2d ptCen[10];

if (pPol->segType(m)==AcDbPolyline::kArc)
  {   
    R[m]=arc.radius();
    ptCen[m]=arc.center();
    pPol->getPointAt(m,ptCen[m]);
    acutPrintf(_T("第%d个圆心坐标为:%.3f,%.3f,半径为:%.3f\n"),m,ptCen[m].x,ptCen[m].y,R[m]);
  }

点评

判断是弧段后,你要用getArcSegAt 算出 arc AcDbPolyline::getArcSegAt Function Acad::ErrorStatusgetArcSegAt(unsigned int index,AcGeCircArc3d& arc) const;If the segment at vertex index is an arc, the  详情 回复 发表于 2013-8-17 17:23
if 里面的 arc 变量是哪的?你没在if 里面计算这个弧啊。  详情 回复 发表于 2013-8-17 17:22
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

发表于 2013-8-17 10:26:31 | 显示全部楼层
好像一个是正,一个是负吧

点评

能说清楚一点不  详情 回复 发表于 2013-8-17 17:05
什么意思,不是很明白  详情 回复 发表于 2013-8-17 10:27
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-17 10:27:40 | 显示全部楼层
mythcom 发表于 2013-8-17 10:26
好像一个是正,一个是负吧

什么意思,不是很明白
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-17 17:05:58 | 显示全部楼层
mythcom 发表于 2013-8-17 10:26
好像一个是正,一个是负吧

能说清楚一点不{:soso_e132:}
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2013-8-17 17:22:01 | 显示全部楼层
yzf_fs 发表于 2013-8-17 09:27
不好意思,删注释时候给删了
double R[10];
AcGePoint2d ptCen[10];

if 里面的 arc 变量是哪的?你没在if 里面计算这个弧啊。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2013-8-17 17:23:50 | 显示全部楼层
yzf_fs 发表于 2013-8-17 09:27
不好意思,删注释时候给删了
double R[10];
AcGePoint2d ptCen[10];

判断是弧段后,你要用getArcSegAt 算出 arc

AcDbPolyline::getArcSegAt Function
Acad::ErrorStatus
getArcSegAt(
unsigned int index,
AcGeCircArc3d& arc) const;
indexInput index (0 based) of the vertex for start of arc
arcOutput copy of arc
If the segment at vertex index is an arc, then this function will fill in arc with the 3D arc information (radius, center, and so on) from the polyline in WCS.
Returns Acad::eOk if successful or Acad::eInvalidIndex if index is not valid for the polyline.

点评

成功了太感谢你了 如果在封闭的多段线里面再画一个多段线,有没有什么办法识别啊  详情 回复 发表于 2013-8-17 18:52
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-17 18:52:28 | 显示全部楼层
XDSoft 发表于 2013-8-17 17:23
判断是弧段后,你要用getArcSegAt 算出 arc

AcDbPolyline::getArcSegAt Function

成功了{:soso_e113:}{:soso_e113:}太感谢你了{:soso_e179:}
如果在封闭的多段线里面再画一个多段线,有没有什么办法识别啊
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 157个

财富等级: 日进斗金

发表于 2013-11-29 10:06:23 | 显示全部楼层
不得不说,晓东确实是高手
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-12-12 10:11:42 | 显示全部楼层
yzf_fs,确实是好人啊,回答得这么耐心
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2014-1-17 14:06:42 | 显示全部楼层
mark,留待学习
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-24 12:24 , Processed in 0.615632 second(s), 59 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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