【求助】关于求圆上的点

http://www.cocoachina.com/ask/questions/show/119259?type=issue

原点不算,就一个已知圆心(4,4)?那怎么求啊,好歹给个半径吧?
有半径的话,这个问题这不是很简单的么?

(0,0)点 到(4,4)点的连线就是半径。

假设半径是50,求方法。

半径那么长,s1~s7 哪里在圆上啊

只是个比喻,只要8个点的夹角 是360/8就行

圆心(x, y), 半径r

xx = r * cos(45);
yy = r * sin(45);

s1 = (x-r, y);
s2 = (x-xx, y+yy);
s3 = (x, y+r);
s4 = (x+xx, y+yy);
s5 = (x+r, y);
s6 = (x+xx, y-yy);
s7 = (x, y-r);
s8 = (x-xx, y-yy);

x = x0 + r * cos(a);
y = y0 + r * sin(a);

楼主把数学全还给老师了:13:

:12: :12: :12: :12: 好深奥呀. 容我理解理解

   好深奥呀.  容我理解理解  :12:

:12::12::12:让你不好好听数学课!!!

:12: 就是简单的三角函数啊。
刚好写了,给你看看代码

Vec2 pos;
//cos,sin函数为弧度制,角度转弧度
double dtAngle = PI * 2/m_defenseList->count();
//坐标原点为圆心,index为第几个点。你的图中s5是我的index0,s4是我的index1,以此类推
double radian = dtAngle * index;
//计算横纵坐标
pos.x = cos(radian) * DEFENSE_NODE_RANGE;
pos.y = sin(radian) * DEFENSE_NODE_RANGE;
return pos;
```

上面好像不太容易看懂,解释一下
 弧度 = π/180 × 角度 
-> 弧度 = 2π/360 × 角度
 -> 弧度 = 2π × 角度/360

m_defenseList->count() 在你的图中为 8
count = 8

拿s4举例, 角度s4=45° index为1
弧度 = 2π × 角度/360
radian = 2π × 45/360
45/360 = 1/8
radian = 2π × 1/8

— Begin quote from ____

引用第11楼zx雄于2014-09-01 14:53发表的 回 9楼(sszyc8) 的帖子 :
:12: 就是简单的三角函数啊。
刚好写了,给你看看代码

Vec2 pos;
//cos,sin函数为弧度制,角度转弧度
....... http://www.cocoachina.com/bbs/job.php?action=topost&tid=226566&pid=1043531
![](p_w_picpath/back.gif)



*--- End quote*

我理解了。多谢多谢。:904: