using StgSharp.Entity; using StgSharp.Logic; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace StgSharp.Geometry { public class PointOnCircle :LinkedObject, IPoint { private Circle _bindedItem; public Circle geometryItem { get { return _bindedItem; } set { _bindedItem = value; } } protected float _x; public float X { get { return _x; } set { _x = value; } } protected float _y; public float Y { get { return _y; } set { _y = value; } } private float _angle0; private float _angle; public float Angle { get { return _angle; } set { _angle = value; } } /// /// /// /// 点所在的圆 /// 点的初项 /// 阵列次数 /// 游戏刻计数器 public PointOnCircle(Circle c, float angle, uint counts) { _bindedItem = c; _angle0 = (angle + counts * (360.0f / counts)) * (float)(2 * Math.PI / 360); } public void OnRender() { _angle = _angle0 + _bindedItem.Angle; this._x = (float)(_bindedItem.Center.X + _bindedItem.Radius * Math.Cos(_angle)); this._y = (float)(_bindedItem.Center.X + _bindedItem.Radius * Math.Sin(_angle)); } } }