【问题标题】:How can I draw on the outline of a circle in C#?如何在 C# 中绘制圆的轮廓?
【发布时间】:2015-11-21 17:38:44
【问题描述】:

我想以固定的间隔在圆的轮廓上绘制文字(就像时钟一样) 有没有简单的方法来做到这一点?

【问题讨论】:

  • 你的编程语言是什么?添加适当的标签。
  • 请澄清您是否在问 1) 找到坐标的数学方法 2) 如何在 C# GUI 中绘制文本,指定您是否使用窗体控件、窗体 OnPaint()、WPF ,等等。

标签: c# draw geometry outline


【解决方案1】:

无论您使用什么图形库,绘制文本都需要一个 x 和一个 y 来知道在哪里绘制文本。

假设时钟的中心是 Cx 和 Cy。假设 x 向右为正, y 为正向上。根据您的平台,您可能需要抵消或逆转这些。

因此您可以使用数学(三角函数)来获取每个时钟编号的 x 和 y。您需要沿圆的度数和圆的半径,公式为:

y = sin(degree) * radius + Cy

x = cos(degree) * radius + Cx

【讨论】:

    【解决方案2】:

    tod​​dmo 的数学是正确的。在实施方面,尚不清楚您要问什么。如果您从头开始,最简单的方法是:

    1) 在 Visual Studio 中创建一个 Windows 窗体应用

    2) 在mspaint中画圆,并将图片文件作为资源导入。

    3) 创建一个图片框,使用表单构建器 UI 显示该资源。这是在表单上显示圆圈的简单方法。

    4) 通过将“标签”控件拖放到表单构建器 UI 中的表单上来创建一个“标签”控件

    5) 创建一个“计时器”控件(可以从“工具箱”窗口拖放到表单上)

    6) 双击Timer控件,在它的事件中,根据toddmo描述的sin和cos设置Label控件的位置。

    7) 将Timer控件的时间间隔设置为合适的值。

    如果 dpi 发生变化,这将无法很好地扩展,但这是一个开始。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-07
      • 2021-06-10
      • 1970-01-01
      • 2018-07-09
      • 2017-05-21
      • 2013-08-16
      相关资源
      最近更新 更多