圆内接多边形的所有顶点

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

关键代码:

 

数学知识:

1、弦长=2Rsina
R是半径,a是圆心角
2、弧长L,半径R
弦长=2Rsin(L*180/πR)
弧度 = 角度 * PI / 180

在一个圆(圆心为O(x,y),半径为R)中,已知一点A(x1,y1),求当此点旋转a度后,其对应点B的座标。比较有难度,关注中。。。
由X,Y,X1,Y1得到圓心到A這條線的斜率,它的角度就知道了。
旋轉a度後就知道,B到圓心這條線的的角度了。知道一點X,Y。
知道斜率。又知道長度R,另一點的坐標就出來了。
懒!可以使用极坐标,算出A点的角度,然后加上a,就是B点的角度,使用极坐标计算就很容易出来了解析几何问题,
自己翻书去[:D]比较a得出在第几向限,以圆心和A点为起线,两点的纵坐标差与半径比较.得出B点坐标,
当然我觉得可以更好一点(自己觉得)首先肯定要算斜率arctg((y1-y)/(x1-x))假设得到角度Q 那么b点的坐标很快就可以得出
y2=y R*sin(q-a) x2=x R*cos(q-a) 我来个好理解的:
A。根据圆O点与半径R的出圆O的方程:
B。根据圆O点与点A(x1,y1)与旋转角度a得到B直线方程://有公式
C。根据圆O的方程B直线方程得到交点B的坐标:以上不难实现,在高中数学书中都可找到,
写成程序也不难,但公式我忘了,自己查查,呵呵也许这个算法在平面几何中是对的,
但在计算机屏幕上就不对了! y2=y R*sin(q-a) x2=x R*cos(q-a)我的本意不是一个点在旋转,
而是一个矩形在圆中旋转,条件与上面的一样。
这个算法在平面几何中是对的,
是计算机屏幕就一定也是对的,只是你要注意你的各个角的正负值(这个很烦的,还是看看书吧.)
可以这样得到:
1。(x1-x),(y1-y)将圆心放到原点,那么A点的坐标如左;
2。a0:=arctan((y1-y)/(x1-x)),求出A点的角度;
3。L:=(x1-x)的平方+(y1-y)的平方,求出A点到圆心的距离;
4。A0x:=L*sin(a a0),A0y:=l*cos(a a0),旋转a度角后,A0点的坐标如左;
5。A0xx:=A0x x,A0yy:=a0y Y,恢复到原坐标系的坐标值。你可以把计算机屏幕看作是,只有一个象限旋转后的坐标系。这不会影响计算结果。矩形按照上述方法,各点照算就可以了。。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值