花样贝塞尔曲线(C#)
来源:互联网 发布:小红帽q群优化软件 编辑:程序博客网 时间:2024/04/23 21:27
花样贝塞尔曲线(C#)
作者 jlgzw
贝塞尔是一名法国工程师。他发明的贝塞尔曲线可以说是一种奇妙的曲线,用它可以创造出很美的图像。一条贝塞尔曲线由4个点唯一定义,包括“起点”,“终点”和“控制点”。其中“控制点”的位置决定着曲线的形状。
下面是我模仿 Windows自带的屏幕保护“贝塞尔曲线”写的一个小程序。它也可以设置贝塞尔曲线的个数和环数,只需修改iCount和iNumber这两个变量。
//----------------------------------------------
// RandomBezier.cs @2007 by jl gzw
//----------------------------------------------
using System;
using System.Drawing;
using System.Windows.Forms;class RandomBezier: Form
{
//变量iCount表示贝塞尔曲线的个数
const int iCount = 2;
//变量iNumber表示环的个数
const int iNumber = 3; private Point[] ptArr = new Point[4 * iCount - (iCount - 1)]; public static void Main()
{
Application.Run(new RandomBezier());
}
public RandomBezier()
{
Text = "花样贝塞尔曲线";
this.BackColor = Color.Black;
Timer timer = new Timer();
timer.Interval = 100;
timer.Tick += new EventHandler(TimerOnTick);
timer.Start();
}
void TimerOnTick(object obj, EventArgs ea)
{
Random rand = new Random(); Graphics grfx = CreateGraphics();
//擦除旧的贝塞尔曲线。
for (int j = 0; j < iNumber; j++)
{
for (int i = 0; i < 4 * iCount - (iCount - 1); i++)
{
ptArr[i].X += 5;
ptArr[i].Y += 5;
}
grfx.DrawBeziers(new Pen(Color.Black, 1), ptArr);
} Point ptBeg = new Point(0,0);
//获得新贝塞尔曲线的坐标。
for(int i = 0; i < 4 * iCount - (iCount - 1); i++)
{
ptArr[i] = new Point(rand.Next(Math.Min(ClientSize.Width, ClientSize.Height)),
rand.Next(Math.Min(ClientSize.Width, ClientSize.Height)));
ptBeg = ptArr[0];
}
ptArr[4 * iCount - (iCount - 1) - 1] = ptBeg;
Color color = Color.FromArgb(rand.Next(256),rand.Next(256), rand.Next(256));
//画新的贝塞尔曲线。外层循环控制环的个数。
for (int j = 0; j < iNumber; j++)
{
grfx.DrawBeziers(new Pen(color, 1), ptArr); for (int i = 0; i < 4 * iCount - (iCount - 1); i++)
{
ptArr[i].X -= 5;
ptArr[i].Y -= 5;
}
} grfx.Dispose();
}
}
- 花样贝塞尔曲线(C#)
- C语言表达式的花样表达
- (C#)贝塞尔曲线画水滴
- 曲线平滑-贝塞尔曲线
- 51单片机C语言开发之花样流水灯程序
- Codeforces #848C: String Reconstruction 题解之花样虐题
- 【C++】绘制余弦曲线
- 贝塞尔曲线
- 贝塞尔曲线
- 贝塞尔曲线
- 贝塞尔曲线
- 贝塞尔曲线
- 贝塞尔曲线
- 贝塞尔曲线
- 贝塞尔曲线
- 贝塞尔曲线
- 贝塞尔曲线
- 贝塞尔曲线
- 追求平均年报酬率10% 老美观点可借镜
- Oracle中动态建表--学习笔记
- Ten Ways to Cheer Up
- ecos kernel 分析
- 常用正则表达式
- 花样贝塞尔曲线(C#)
- 【转贴】一个垃圾程序员的创业梦
- 递归回溯--八皇后问题
- 直接调用内置数据源连接对话框(C#/VB.NET2005源码)
- 80后的十大尴尬
- 参数设置
- 初步了解Oracle
- 实现可靠UDP通信的两种方式
- sybase 备份数据脚本,备份出来的数据很小