明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3828|回复: 14

已知 圆弧的半径 起始角 终止角 圆心坐标 求凸度(正负)

[复制链接]
发表于 2014-5-21 13:06:41 | 显示全部楼层 |阅读模式
如题:求凸度值 及圆弧的绘制方向是“顺时针”— ,还是“逆时针“+。请各位大侠帮忙啊!!
发表于 2021-6-28 11:20:27 | 显示全部楼层
本帖最后由 yjtdkj 于 2021-6-28 11:40 编辑

  1. ;取圆弧凸度-------------yjtdkj by 2021.06
  2. (defun c:tt ()
  3.   (progn
  4.   (defun yj-dxf (key ename) (cdr (assoc key (entget ename))))
  5.   (defun mid (p1 p2)
  6.       (mapcar (function (lambda (e1 e2) (* (+ e1 e2) 0.5))) p1 p2)
  7.     )
  8.     )
  9.   (setq en (car (entsel)))
  10.   (setq  
  11.   r     (dxf 40 en)
  12.   pt1   (vlax-curve-getstartPoint en)
  13.   pt2   (vlax-curve-getEndPoint en)
  14.   ptm   (mid pt1 pt2)
  15.   len   (vlax-curve-getDistAtPoint en (vlax-curve-getEndPoint en))
  16.   cpm   (vlax-curve-getpointAtdist en (/ len 2))
  17.   dis   (distance pt1 pt2)   
  18.   h     (distance ptm cpm)
  19.   )
  20.   (setq tu (/ h (* dis 0.5)))
  21.   (setq
  22.     a (-(cadr pt2) (cadr pt1))
  23.     b (-(car pt1)(car pt2))
  24.     c (-(* -1 a (car pt1))(* b (cadr pt1)))
  25.     d1 (-(* -1 a (car cpm))(* b (cadr cpm)))
  26.   )
  27.   (cond
  28.     ((= d1 c)
  29.       (* tu 0)
  30.   )
  31.   ((> d1 c)
  32.       (* tu -1)
  33.   )
  34.   ((< d1 c)
  35.       (* tu 1)
  36.   )
  37. )
  38. )

发表于 2014-5-21 14:22:05 | 显示全部楼层
凸度值等于弦高除与弦长的一半,逆时针为正值,顺时针为负值
 楼主| 发表于 2014-5-21 14:24:45 | 显示全部楼层
谢谢回复!关键是 我 如何判断已有的弧是“逆时针”还是“顺时针”?
发表于 2014-5-21 14:34:20 | 显示全部楼层
/// <summary>
    /// 判断1,2,3三个点的依次走向为顺时针还是逆时针走向
    /// 顺时针返回-1,逆时针返回1,点重合或在一条直线上返回0
    /// </summary>
    /// <param name="P1">第一个点</param>
    /// <param name="P2">第二个点</param>
    /// <param name="P3">第三个点</param>
    /// <returns>顺时针返回-1,逆时针返回1,点重合或在一条直线上返回0</returns>
    static public int Clockwise(Point3d P1, Point3d P2, Point3d P3)
    {
      double A = P3.Y - P1.Y;
      double B = P1.X - P3.X;
      double C = -1.0 * A * P1.X - B * P1.Y;
      double d1 = -A * P2.X - B * P2.Y;
      if (d1 == C)
        return 0;
      else if (d1 > C)
        return -1;
      else
        return 1;
    }
 楼主| 发表于 2014-5-21 14:59:48 | 显示全部楼层
谢谢!非常感谢!
 楼主| 发表于 2014-5-21 15:08:34 | 显示全部楼层
哎呀! 起点 终点   没有第三点啊?!!
发表于 2014-5-21 15:39:19 | 显示全部楼层
还有圆心呀,两点你怎么能判断时钟走向?
 楼主| 发表于 2014-5-21 15:45:27 | 显示全部楼层
新手,请谅解!! 再请教,圆心点是P1 P2 还是P3  ?
发表于 2014-5-21 16:18:14 | 显示全部楼层
P1是起点的话,那么P3是圆心,P2是起点的话,P1是圆心
发表于 2014-5-21 16:19:03 | 显示全部楼层
自己测试看看更清楚
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 04:21 , Processed in 0.158495 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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