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 默認是順時針方向?
總結
以上是生活随笔為你收集整理的java三点确定圆弧_圆弧方向判断方法和三点确定一个圆的计算方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TW实习日记:第16天
- 下一篇: java中throws用法_java中t