打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
圆弧方向判断方法和三点确定一个圆的计算方法

2017年08月18日 23:19:42



设p1=(x1,y1) 
 p2=(x2,y2)
 p3=(x3,y3)  
求向量  

   p12=(x2-x1,y2-y1)    

   p23=(x3-x2,y3-y2)   
则当 p12与p23的叉乘(向量积)  

   p12 x   p23  =   (x2-x1)*(y3-y2)-(y2-y1)*(x3-x2)  
   
  为正时,p1-p2-p3   路径的走向为逆时针,  
  为负时,p1-p2-p3   走向为顺时针,  
  为零时,p1-p2-p3   所走的方向不变,亦即三点在一直线上。

可以应用在判断三点确定圆弧,圆弧是逆时针画,还是顺势针画。


求三点的夹角
利用向量的知识
 A(a,b),B(c,d)是向量
 cosA(A,B)=(A*B)/(|A|*|B|)= (a*c+b*d)/(sqrt(a*a+b*b)*sqrt(c*c+d*d))
 A=acos(cosA)/M_PI*180
 M_PI在math.h头文件中注释掉了。#define M_PI       3.14159265358979323846
   
 注意点在计算中误差值比如cosA = 0.999999998 不是1 在A=acos(cosA)/M_PI*180得到的值是近0的1.2e-6 但是不是0。


  • SetArcDirection

VB声明
Declare Function SetArcDirection Lib "gdi32" Alias "SetArcDirection" (ByVal hdc As Long, ByVal ArcDirection As Long) As Long
说明
设置圆弧的描绘方向
返回值
Long,如执行成功,返回原始的圆弧方向;零意味着出错
参数表
参数类型及说明
hdcLong,要设置的设备场景
ArcDirectionLong,AD_CLOCKWISE (顺时针)或 AD_COUNTERCLOCKWISE (逆时针)
注解
可应用于下列函数:Arc, arcto, chord, Ellipse, pie, Rectangle 和 RoundRect

Windows 默认是顺时针方向?



本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
柔的方法 6
自我按摩治瘙痒
判断两条线段是否相交
查找六甲“空亡”之秘中秘
三角函数和向量
萧瑶云天-- 自己动手治疗早泄
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服