背景:
我最近在玩 GDI+ 来绘制一个“圆盘”,显示 360 度的全面颜色变化。(我挖出了一些 HSL 到 RGB 代码来循环遍历 HSL(1,1,1) -> HSL(360,1,1))
关于圆盘,我首先用上面的方法画了一个完整的实心圆,然后在中心上方画了一个灰色的第二个圆,给出以下内容
所以这一切都很好......但我意识到 GDI+ 通过这种FillPie
方法将我们与这里发生的许多棘手的匹配隔离开来。此外,FillPie
要求您为饼图提供一个边界矩形,而不是半径长度。它还进行完整的段填充,并且不允许您仅指定该段的一部分。
问题:
任何人都可以指出一些数学函数的方向或给出任何解释我需要什么论坛来计算以下“绿色填充区域”的面积和绘图点:
Point `c` - an x,y co-ordinate
Angle `A` - an angle from horizontal
Angle `B - an angle from horizontal where `B` - `A` == the sweep angle
Length `r` - a distance from `c`
Length `r2` - a distance from `c` where `r2` - `r` == the `height` of the segment to be filled.
数学资源的链接很好,但我快速搜索了一下 Wolfram Math,可以找到我想要的东西。此外,如果有某种方法可以生成可以作为 a 传递Point[]
给 Graphics.FillPolygon 的边界 (x,y) 坐标序列,那也很酷。