获取圆周上等分点的坐标(C#实现)
有个绘图的需求,在一个圆上的等分点处画出图形,核心是求出圆周上的等分点的坐标,数学忘得差不多了,折腾了半天没研究出来。
网上搜索之后,一下子回忆起来了,原来是用Sin和Cos来计算,其实挺简单,代码如下:
panelV.Paint += new PaintEventHandler(panel1_Paint);
//...
private void panel1_Paint(object sender, PaintEventArgs e)
{
int count = 8; //8个等分点
var radians = (Math.PI / 180) * Math.Round(360.0 / count); //弧度
double ox = 300.0;
double oy = 200.0;
int r = 150;
for (int i = 0; i < count; i++)
{
double x = ox + r * Math.Sin(radians * i);
double y = oy + r * Math.Cos(radians * i);
Pen blackPen = new Pen(Color.Black, 3);
Rectangle rect = new Rectangle(Convert.ToInt32(x), Convert.ToInt32(y), 20, 20);
e.Graphics.DrawRectangle(blackPen, rect);
}
}
效果:
参考:https://www.cnblogs.com/xuhanwen/p/3780294.html