一种模拟圆规实现绘制圆的方法_2

文档序号:9922499阅读:来源:国知局
>[0086](5)算出点Gl坐标:
[0087]PointGl.X = PointE3.X+10 ;
[0088]PointGl.Y = PointE3.Y;
[0089]步骤304、算出H、1、J、K四个点坐标:
[0090](I)算出点H坐标:
[0091 ]PointH.X = PointE3.X-10-30;
[0092]PointH.Y = PointE3.Y;
[0093](2)算出点I坐标:
[0094]Point1.X = PointE4.X-10-15;
[0095]PointI.Y = PointE4.Y;
[0096](3)算出点J坐标:
[0097]PointJ.X = PointE4.X+10+15;
[0098]PointJ.Y = PointE4.Y;
[0099](4)算出点K坐标:
[0100]PointK.X = PointE3.X+10+30;
[0101 ]PointK.Y = PointE3.Y ;
[0102]步骤305、算出“左端脚支”相关坐标点信息:
[0103](I)算出点Z坐标:
[0104]算出辅助点E4,规定梯形HIJK的高度为50,因此有:
[0105]PointE4.X = PointE3.X;
[0106]PointE4.Y = PointE3.Y+50 ;
[0107]规定,点Z为梯形HIJK的中心点,因此:
[0108]PointZ.X= (PointE3.X+PointE4.X)/2;
[0109]PointZ.Y= (PointE3.Y+PointE4.Y)/2 ;
[0110](2)算出点V坐标:
[0111]规定:BV = 45,因此有:
[0112]PointV-X = RectOut.X ;
[0113]PointV.Y = RectOut.Y+RectOut.Height-45 ;
[0114](3)算出点Vl坐标:
[0115]规定:BVl =45,因此有:
[0116]PointVl.X = RectOut.X+45 ;
[0117]PointVl.Y = RectOut.Y+RectOut.Height ;
[0118](4)算出点Y坐标:
[0119]算出向量:Wl:
[0120]Vectorl.X = PointVl.X-PointV.X;
[0121 ]Vectorl.Y = PointVl.Y-PointV.Y;
[0122]向量单位化:
[0123]Len:=Sqrt(Sqr(Vector1.X)+Sqr(Vectorl.Y));
[0124]Vectorl.X = Vectorl.X/Len;
[0125]Vectorl.Y = Vectorl.Y/Len;
[0126]规定VY长度等于20,因此:
[0127]PointY.X = PointV.X+VectorI.Χ*20 ;
[0128]PointY.Y = PointV.Y+VectorI.Υ*20;
[0129](5)算出点V2、V3坐标:
[0130]规定:V2V3平行于VY,因此:
[0131]PointV2.X = PointZ.X+Vectorl.X*20/2;
[0132]PointV2.Y = PointZ.Y+Vectorl.Y*20/2;
[0133]PointV3.X = PointZ.X-Vectorl.X*20/2;
[0134]PointV3.Y = PointZ.Y-Vectorl.Y*20/2;
[0135](6)算出点X坐标:
[0136]规定:
[0137]PointX.X = PointY.X-10 ;
[0138]PointX.Y = PointY.Y ;
[0139](7)算出点0坐标:
[0140]Po int0.X = PointX.X;
[0141]PointO-Y = PointVl.Y;
[0142]步骤306、算出“右端脚支”相关坐标点信息:
[0143](I)算出点V6坐标:
[0144]规定:CV6 = 45,那么V6与V关于中轴线EV7对称,则有:
[0145]PointV6.X = PointV.X+Rect0ut.Width;
[0146]PointV6.Y = PointV.Y;
[0147](2)算出点R坐标:
[0148]规定:Vl与R关于中轴线EV7对称,则有:
[0149]PointR.X = PointE.X+(PointE.X-PointVl.X);
[0150]PointR.Y = PointVl.Y;
[0151](3)算出点Z3坐标:
[0152]规定:Z3与X关于中轴线EV7对称,则有:
[0153]PointZ3.X=PointE.X+(PointE.X-PointY.X);
[0154]PointZ3.Y = PointY.Y;
[0155](4)算出点V4、V5坐标:
[0156]规定:V4V5平行于RV6,长度与VY相等都是20
[0157]计算向量V6R:
[0158]Vector2.X = PointR-X-Po intV6.X ;
[0159]Vector2.Y = PointR.Y-Po intV6.Y;
[0160]向量单位化:
[0161 ]Len: =Sqrt(Sqr(Vector2.X)+Sqr(Vector2.Y));
[0162]Vector2.X = Vector2.X/Len;
[0163]Vector2.Y = Vector2.Y/Len;
[0164]因此,V4、V5坐标为:
[0165]PointV4.X = PointZ.X+Vector2.X*20/2;
[0166]PointV4.Y = PointZ.Y+Vector2.Y*20/2 ;
[0167]PointV5.X = PointZ.X-Vector2.X*20/2;
[0168]PointV5.Y = PointZ.Y-Vector2.Y*20/2 ;
[0169](5)算出点T坐标:
[0170]规定:PointT.Y = PointY.Y-25;
[0171]以PointZ3 和 PointV4 为端点的直线为:Al*x+Bl*y+Cl=0,则有:
[0172]Al =PointV4.Y-PointZ3.Y ;
[0173]Bl=-(PointV4.X-PointZ3.X);
[0174]Cl = (PointV4.X_PointZ3.X)*PointZ3.Y-(PointV4.Y_PointZ3.Y)*PointZ3.X;
[0175]当y = PointT.Υ,带入直线方程,算出PointT.X:
[0176]PointT.X=(-Cl-Bl*PointT.Y)/Al;
[0177](6)算出点R坐标:
[0178]规定:
[0179]PointR.X = PointT.X;
[0180]PointR.Y = Point0.Y;
[0181](7)算出点M、N坐标:
[0182]规定:
[0183]PointM.X = PointR.X-7;
[0184]PointM.Y = PointR.Y-20;
[0185]PointN.X = PointR.X+16 ;
[0186]PointN.Y = PointR.Y_15;
[0187](8)算出点Q坐标:
[0188]很明显,点Q为直线V5V6与直线MT的交点,这边要解决是已经分别知道两条直线的端点,求其交点:
[0189]直线I 端点:P1、P2,一般方程为:Al*x+Bl*y+Cl=0
[0190]直线2端点:P3、P4,一般方程为:A2*x+B2*y+C2= O
[0191]那么有:
[0192]A1=P2.Y-P1.Y;
[0193]B1=-(P2.X-P1.X);
[0194]C1 = (P2.X-P1.Χ)*Ρ1.Υ-(Ρ2.Υ-Ρ1.Υ)*Ρ1.Χ;
[0195]Α2 = Ρ4.Υ-Ρ3.Υ;
[0196]Β2 = -(Ρ4.Χ-Ρ3.Χ);
[0197]C2 = (Ρ4.Χ-Ρ3.Χ)*Ρ3.Υ_(Ρ4.Υ-Ρ3.Υ)*Ρ3.X;
[0198]那么交点坐标为:
[0199]X= (B1*C2-B2*C1 )/(Α1*Β2-Β1*Α2);
[0200]Y=(A2*C1-A1*C2)/(A1*B2-A2*B1);
[0201]采取如上方法,即可算出点Q的坐标PointQ。
[0202](9)算出点L坐标:
[0203]规定,MT= QL
[0204]算出辅助向量:
[0205]Vector3.X = PointT.X-PointM.X ;
[0206]Vector3.Y = PointT.Y-PointM.Y ;
[0207]那么有:
[0208]PointL.X = PointQ.X+Vector3.X;
[0209]PointL.Y = PointQ.Y+Vector3.Y ;
[0210](10)算出点P坐标:
[0211 ]规定:LP=MN,LP 平行于 MN
[0212]算出辅助向量:
[0213]Vector4.X = PointN.X-PointM.X ;
[0214]Vector4.Y = PointN.Y-PointM.Y ;
[0215]因此有:
[0216]PointP.X = PointL.X+Vector4.X;
[0217]PointP.Y = PointL.Y+Vector4.Y ;
[0218](11)算出点S、U坐标:
[0219]类似上一步有:
[0220]PointS.X = PointQ.X+Vector4.X;
[
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1