我一直在研究C#中涉及图像编辑和动画的程序。
我发现我需要一个允许用户绘制曲线的界面。
我认为Photoshop和Powerpoint使用的系统非常直观。
我四处搜寻,发现了很多关于这个曲线系统的东西,包括它被称为贝塞尔曲线,以及点如何定义它们。
然而,尽管它们都描述了点如何定义曲线,但它们都没有描述Powerpoint和Photoshop使用的定义系统,其中两个线段类似于切线。
直观地说,我认为不知何故这些段用于计算定义曲线的点,但我完全没有注意到。
简而言之,我试图允许我的用户以类似于Photoshop和Powerpoint的方式绘制贝塞尔曲线,使用两个线段,在给定点具有端点,定义“切线”,长度和方向这些部分都会影响曲线。
答案 0 :(得分:0)
this.CreateGraphics().DrawBezier(Pens.Black, 0, 0, 20, 80, 80, 20, 100, 100);
在这种情况下, this
是一个表单,我在覆盖OnPaint事件时调用它。
您也可以在图像上绘制贝塞尔曲线,然后查看它:
var bitmap = new Bitmap(100, 100);
Graphics.FromImage(bitmap).DrawBezier(Pens.Black, 0, 0, 20, 80, 80, 20, 100, 100);
this._pictureBox.Image = bitmap;
我的例子中的结果是: