【问题标题】:C# Draw Spiral FillC# 绘制螺旋填充
【发布时间】:2018-05-23 05:35:15
【问题描述】:

我有一个关于螺旋绘图的问题。

以下来源引用自链接。
http://www.java2s.com/Code/CSharp/2D-Graphics/Spiral.htm

螺旋为您提供空间。

我想让 Spiral 填满屏幕。

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

【问题讨论】:

  • FillPath 呢?
  • 嗨,约翰。我不知道你的意思
  • 有一个图形方法FillPath(类似于在Photoshop中填充路径的工作方式)。我不确定你定义路径有多容易,但是一旦你有了路径,这可能会帮助你进行实际绘图。
  • 谢谢约翰。但我想要做的是绘制螺旋来填充屏幕。
  • 首先要做的是检查你是否可以画任何东西。从简单的开始,如果你不能画一条线,你就不能画螺旋线。如果您可以画一条线,请检查这些点是否有意义。他们在屏幕上吗,等等

标签: c# drawing spiral


【解决方案1】:

出于纯粹的病态好奇心,我创建了一个新的 winforms 应用程序并粘贴了您的代码

这是我的结果

如果这不是您想要的结果,请更新您的问题以更具体,包括图片、想要的结果以及为什么它不起作用

【讨论】:

  • i.stack.imgur.com/Ijrjp.png 我不知道如何附上截图并附加为链接。上、下、左各有空格作为程序执行结果。我希望在屏幕上绘制螺旋线。
  • 是这样吗?谢谢你的答案。有一种混乱,因为它与我所看到的不同。
  • @MrLee 我的意思是我的螺旋是不平衡的,因为表格尺寸。然而,在完全正方形的形状上,正常的螺旋不会接触所有边。这就是他们所做的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-28
  • 2021-11-06
  • 2019-05-02
  • 1970-01-01
  • 2013-03-08
  • 1970-01-01
相关资源
最近更新 更多