如何不同半径画一个不规则的圆

hellNo 2019-02-20 12:03:59
同志们,有十个半径的参数,每个半径要画36度的圆角,然后十个半径正好能画360度,画成一个不规则的圆。。试验了一上午,只怪自己当初数学没学好。。。
求助大神们
...全文
862 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_43593642 2019-02-24
  • 打赏
  • 举报
回复
最后一个真的厉害
desperaso 2019-02-21
  • 打赏
  • 举报
回复
楼上的图的实现

int[] radius = new int[10] { 50, 60, 70, 80, 90, 100, 110, 120, 130, 140 };
private void panel1_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
g.SmoothingMode = SmoothingMode.AntiAlias;

Pen pen = new Pen(Color.SteelBlue, 2);

var _max = radius.Max();
for (int i=0;i<10;i++)
{
var _current = radius[i] - _max < 0 ? (_max- radius[i])/2 : 0;
g.DrawPie(pen, _current,_current, radius[i], radius[i], i*36, 36);
}
}
liusa1997 2019-02-20
  • 打赏
  • 举报
回复
引用 7 楼 neon2232 的回复:
是这样吗?
我用的 是MINICAD,先画一个圆,再画一条水平的直线,贯穿圆心。然后旋转直线(软件旋转角度是灰色 不给直接填,我慢慢放大用鼠标一步一步试出来36° )最后复制黏贴旋转(旋转过第一次后,每次旋转都有基准线,不像第一次要慢慢试,很快)
然后根据圆心再画九个不同直径圆,画完裁剪就得到以下图片。

应该就是你这个样子了,不过要代码实现吧
neon2232 2019-02-20
  • 打赏
  • 举报
回复
是这样吗? 我用的 是MINICAD,先画一个圆,再画一条水平的直线,贯穿圆心。然后旋转直线(软件旋转角度是灰色 不给直接填,我慢慢放大用鼠标一步一步试出来36° )最后复制黏贴旋转(旋转过第一次后,每次旋转都有基准线,不像第一次要慢慢试,很快) 然后根据圆心再画九个不同直径圆,画完裁剪就得到以下图片。
  • 打赏
  • 举报
回复
好歹画个圆示意图出来,下面都是在猜要画成什么样
Hello World, 2019-02-20
  • 打赏
  • 举报
回复
引用 4 楼 liusa1997 的回复:
[quote=引用 3 楼 Hello World, 的回复:]
是不是画这样的?

找个中心点,直角坐标系计算每个圆弧的起点和终点,画弧

很明显,他不是这个意思。他要的是每个圆心角半径不同,这个相同了[/quote]
那是这样?(白色部份)
liusa1997 2019-02-20
  • 打赏
  • 举报
回复
引用 3 楼 Hello World, 的回复:
是不是画这样的?

找个中心点,直角坐标系计算每个圆弧的起点和终点,画弧

很明显,他不是这个意思。他要的是每个圆心角半径不同,这个相同了
Hello World, 2019-02-20
  • 打赏
  • 举报
回复
是不是画这样的?

找个中心点,直角坐标系计算每个圆弧的起点和终点,画弧
hellNo 2019-02-20
  • 打赏
  • 举报
回复
引用 1 楼 liusa1997 的回复:
什么叫不规则的圆?你的意思难道是10个不同半径相同度数的圆心角要拼成一个图形?
每个圆画36度的圆角,十个圆角画成一个圆,因为十个圆每个圆的半径是不一样的,所以十个圆汇聚成一个不规则的圆
liusa1997 2019-02-20
  • 打赏
  • 举报
回复
什么叫不规则的圆?你的意思难道是10个不同半径相同度数的圆心角要拼成一个图形?

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧