C#五角星的集中画法

更新时间:2023-12-09 02:58:59 阅读: 评论:0

2023年12月9日发(作者:阳字怎么写)

-

C#五角星的集中画法

正多边型的点坐标计算思想:

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]);

-

C#五角星的集中画法

本文发布于:2023-12-09 02:58:59,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/zhishi/a/1702061939115642.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:C#五角星的集中画法.doc

本文 PDF 下载地址:C#五角星的集中画法.pdf

标签:事件   画法   需要   计算   外接园
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 实用文体写作网旗下知识大全大全栏目是一个全百科类宝库! 优秀范文|法律文书|专利查询|