java三点确定圆弧_圆弧方向判断方法和三点确定一个圆的计算方法

圆弧方向判断方法

设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 默认是顺时针方向?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值