2023年12月9日发(作者:阳字怎么写)
正多边型的点坐标计算思想:
2010.4.9 整理
///五角形的内外园,圆心(a,a)
//float a = 100;
//float r1 = 100;
//float r2 = 40;
//for (int i = 0; i < 5; i++)
//{
// p1[i].X = a + (float)(i * 2 * / 5 - / 10)
* r1;
// p1[i].Y = a + (float)(i * 2 * / 5 - / 10)
* r1;
//}
//for (int i = 0; i < 5; i++)
//{
// p2[i].X = a + (float)(i * 2 * / 5 + 2 *
/ (2 * 5) - / 10) * r2;
// p2[i].Y = a + (float)(i * 2 * / 5 + 2 *
/ (2 * 5) - / 10) * r2;
//}
//for (int i = 0; i < 10; i++)
//{
// if (i % 2 == 0)
// {
// p[i] = p1[i / 2];
// }
// if (i % 2 == 1)
// {
// p[i] = p2[(int)(i / 2)];
// }
//}
画法1(Button1的paint事件):
GraphicsPath myGraphicsPath = new GraphicsPath();
PointF[] p1 = new [5];
[] p2 = new [5];
[] p = new [10];
////五角形的外接园,圆心(a,a)
float a = 100;
float r1 = 100;
float r2 = 40;
for (int i = 0; i < 5; i++)
{
p1[i].X = a + (float)(i * 2 * / 5 - / 10)
* r1;
p1[i].Y = a + (float)(i * 2 * / 5 - / 10)
* r1;
}
for (int i = 0; i < 5; i++)
{
p2[i].X = a + (float)(i * 2 * / 5 + 2 * /
(2 * 5) - / 10) * r2;
p2[i].Y = a + (float)(i * 2 * / 5 + 2 * /
(2 * 5) - / 10) * r2;
}
for (int i = 0; i < 10; i++)
{
if (i % 2 == 0)
{
p[i] = p1[i / 2];
}
if (i % 2 == 1)
{
p[i] = p2[(int)(i / 2)];
}
}
ygon(p);
lor = ;
= new (200, 200);
= new Region(myGraphicsPath);
画法2:(paint 事件)
GraphicsPath myGraphicsPath = new GraphicsPath();
PointF[] p1 = new [5];
[] p2 = new [5];
float a = 100;
float r1 = 100;
float r2 = 40;
for (int i = 0; i < 5; i++) {
p1[i].X = a + (float)(i * 2 * / 5 - / 10)
* r1;
p1[i].Y = a + (float)(i * 2 * / 5 - / 10)
* r1;
}
for (int i = 0; i < 5; i++)
{
p2[i].X = a + (float)(i * 2 * / 5 + 2 * /
(2 * 5) - / 10) * r2;
p2[i].Y = a + (float)(i * 2 * / 5 + 2 * /
(2 * 5) - / 10) * r2;
}
for (int i = 0; i < 5; i++)
{
for (int j = i; j < i +1; j++)
e(p1[i],p2[j%5]);
}
lor = ;
= new (200, 200);
= new Region(myGraphicsPath);
画法3(非事件画法:通过颜色刷刷出来的。需要外部事件的触发)
Brush fillBrush;
fillBrush = new SolidBrush();
Graphics g;
float a = 100;
float r1 = 100;
float r2 = 40;
PointF[] p1 = new [5];//float型point
[] p2 = new [5];
[] p = new [10];
for (int i = 0; i < 5; i++)
{
p1[i].X = a + (float)(i * 2 * / 5 - / 10)
* r1;
p1[i].Y = a + (float)(i * 2 * / 5 - / 10)
* r1;
} //Pen p = new Pen(, 2);
for (int i = 0; i < 5; i++)
{
p2[i].X = a + (float)(i * 2 * / 5 + 2 * /
(2 * 5) - / 10) * r2;
p2[i].Y = a + (float)(i * 2 * / 5 + 2 * /
(2 * 5) - / 10) * r2;
}
for (int i = 0; i < 10; i++)
{
if (i % 2 == 0)
{
p[i] = p1[i / 2];
}
if (i % 2 == 1)
{
p[i] = p2[(int)(i / 2)];
}
}
g = Graphics();
lygon(fillBrush, p);
画法4(非事件画法:连线。需要别的事件触发)
Graphics g;
float a = 100;
float r1 = 100;
PointF[] p1 = new [5];
for (int i = 0; i < 5; i++)
{
p1[i].X = a + (float)(i * 2 * / 5 - / 10)
* r1;
p1[i].Y = a + (float)(i * 2 * / 5 - / 10)
* r1;
}
Pen p = new Pen( , 2);
g = Graphics();
ne(p, p1[0], p1[2]);
ne(p, p1[0], p1[3]); ne(p, p1[1], p1[3]);
ne(p, p1[1], p1[4]);
ne(p, p1[2], p1[4]);
本文发布于:2023-12-09 02:58:59,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/zhishi/a/1702061939115642.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:C#五角星的集中画法.doc
本文 PDF 下载地址:C#五角星的集中画法.pdf
留言与评论(共有 0 条评论) |