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);
楼主把数学全还给老师了
好深奥呀. 容我理解理解
好深奥呀. 容我理解理解 :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) 的帖子 :
就是简单的三角函数啊。
刚好写了,给你看看代码
Vec2 pos; //cos,sin函数为弧度制,角度转弧度 ....... http://www.cocoachina.com/bbs/job.php?action=topost&tid=226566&pid=1043531  *--- End quote*
我理解了。多谢多谢。:904:
