C# 绘制螺旋填充
C# Draw Spiral Fill
我有一个关于螺旋绘图的问题。
以下来源引用自link。
http://www.java2s.com/Code/CSharp/2D-Graphics/Spiral.htm
螺旋给你space。
我想让螺旋充满屏幕。
protected override void OnPaint(PaintEventArgs pea)
{
DoPage(pea.Graphics, ForeColor, ClientSize.Width,ClientSize.Height);
}
protected void DoPage(Graphics grfx, Color clr, int cx, int cy)
{
const int iNumRevs = 3;
int iNumPoints = iNumRevs * 2 * (cx + cy);
PointF[] aptf = new PointF[iNumPoints];
float fAngle, fScale;
for (int i = 0; i < iNumPoints; i++)
{
fAngle = (float)(i * 2 * Math.PI / (iNumPoints / iNumRevs));
fScale = 1 - (float)i / iNumPoints;
aptf[i].X = (float)(cx / 2 * (1 + fScale * Math.Cos(fAngle)));
aptf[i].Y = (float)(cy / 2 * (1 + fScale * Math.Sin(fAngle)));
}
grfx.DrawLines(new Pen(clr), aptf);
}
图片
https://i.stack.imgur.com/Ijrjp.png
出于纯粹病态的好奇心,我创建了一个新的 winforms 应用程序并粘贴了您的代码
这是我的结果
如果这不是您想要的结果,请更具体地更新您的问题,包括图片、想要的结果以及它不起作用的原因
我有一个关于螺旋绘图的问题。
以下来源引用自link。
http://www.java2s.com/Code/CSharp/2D-Graphics/Spiral.htm
螺旋给你space。
我想让螺旋充满屏幕。
protected override void OnPaint(PaintEventArgs pea)
{
DoPage(pea.Graphics, ForeColor, ClientSize.Width,ClientSize.Height);
}
protected void DoPage(Graphics grfx, Color clr, int cx, int cy)
{
const int iNumRevs = 3;
int iNumPoints = iNumRevs * 2 * (cx + cy);
PointF[] aptf = new PointF[iNumPoints];
float fAngle, fScale;
for (int i = 0; i < iNumPoints; i++)
{
fAngle = (float)(i * 2 * Math.PI / (iNumPoints / iNumRevs));
fScale = 1 - (float)i / iNumPoints;
aptf[i].X = (float)(cx / 2 * (1 + fScale * Math.Cos(fAngle)));
aptf[i].Y = (float)(cy / 2 * (1 + fScale * Math.Sin(fAngle)));
}
grfx.DrawLines(new Pen(clr), aptf);
}
图片
https://i.stack.imgur.com/Ijrjp.png
出于纯粹病态的好奇心,我创建了一个新的 winforms 应用程序并粘贴了您的代码
这是我的结果
如果这不是您想要的结果,请更具体地更新您的问题,包括图片、想要的结果以及它不起作用的原因