0

我一直在用 C# 编写一个涉及图像编辑和动画的程序。

我发现我需要一个允许我的用户绘制曲线的界面。

我认为 Photoshop 和 Powerpoint 使用的系统非常直观。

我四处搜索,发现了关于这个曲线系统的很多东西,包括它被称为贝塞尔曲线,以及点如何定义它们。

然而,尽管他们都描述了点如何定义曲线,但没有一个人描述了 Powerpoint 和 Photoshop 使用的定义系统,两个线段类似于切线。

直觉上,我认为这些段以某种方式用于计算定义曲线的点,但我完全不知道如何。

简而言之,我试图让我的用户以与 Photoshop 和 Powerpoint 类似的方式绘制贝塞尔曲线,使用在给定点具有端点的两条线段定义“切线”,这些线段的长度和方向都影响曲线。

4

1 回答 1

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;

我的示例中的结果是:

例子

于 2012-05-21T23:32:14.300 回答