1 用最简单的代码 画一条最简单的曲线
代码在这里:
注意:Graphics的 drawPath 需要 flash player10
package
{
import flash.display.GraphicsPathCommand;
import flash.display.Sprite;
public class drawCurveLine0 extends Sprite
{
public function drawCurveLine0()
{
super();
graphics.lineStyle(0, 0x000000);
var data:Vector.<Number>=new Vector.<Number>();
data.push(200, 200); graphics.drawCircle(200, 200, 10);
//起点
data.push(250, 100); graphics.drawCircle(250, 100,5);
//控制点1
data.push(300, 200); graphics.drawCircle(300, 200, 10);
//节点2
data.push(400, 250); graphics.drawCircle(400, 250,5);
//控制点2
data.push(300, 300);
data.push(250, 400);
data.push(200, 300);
data.push(100, 250);
data.push(200, 200);
var commands:Vector.<int>=new Vector.<int>();
commands.push(GraphicsPathCommand.MOVE_TO);
commands.push(GraphicsPathCommand.CURVE_TO);//样式:曲线
commands.push(GraphicsPathCommand.CURVE_TO);
commands.push(GraphicsPathCommand.CURVE_TO);
commands.push(GraphicsPathCommand.CURVE_TO);
graphics.drawPath(commands, data);//画路径
}
}
}
看明白了么?
就是定义一堆点的数组,再定义一个每两个点之间线型的数组,然后drawPath。
很简单吧,很简洁吧。
另:如果用GraphicsPathCommand.CURVE_TO,
貌似会认为你的节点数组里的点的作用为:
节点1,控制点1,节点2,控制点2,节点3.。。。。。。。。。。。
如果用GraphicsPathCommand.LINE_TO,则是画折现,点数组中点的含义变为:
节点1, 节点2, 节点3. 节点4, 节点5。。。。。。。。。
明天请看用Graphics的 drawPath 来画曲线(2),实现 鼠标拖动节点和控制点的功能。
分享到:
相关推荐
- `Graphics.DrawPath`方法可以绘制`GraphicsPath`对象中的所有形状和曲线。 8. **应用实例**: - UI设计:创建平滑的按钮边框、滑块轨迹等。 - 游戏开发:定义角色移动路径、动画曲线等。 - 数据可视化:用...
对于Nurbs曲线,可以使用`GraphicsPath`类来构建路径,并使用`AddCurve`方法添加样条曲线。这个方法需要一组点和一个参数,表示曲线的光滑度。然后,通过`Graphics.DrawPath`方法将路径绘制到屏幕上。 **鼠标交互...
此外,你还可以使用`GraphicsPath`类来创建更复杂的曲线路径,然后用`DrawPath`方法绘制。`GraphicsPath`允许你添加直线、曲线和其他形状到路径中,然后一次性绘制。 总之,这个C#实例通过WinForm展示了如何利用GDI...
在Delphi中,我们可以利用GDI+(Graphics Device Interface Plus)库来实现贝塞尔曲线的绘制。GDI+提供了一套完整的绘图API,包括画笔、刷子、路径、几何形状等,其中就包含了绘制贝塞尔曲线的方法。 贝塞尔曲线的...
然后,使用`Pen`对象和`Graphics`对象画出曲线: ```cpp pen.SetColor(Gdiplus::Color(0, 0, 255)); // 设置为蓝色 graphics->DrawPath(&pen, path); // 绘制路径 ``` 记得在完成绘图后释放资源: ```cpp delete ...
下面将详细阐述`Graphics`类的核心概念以及如何使用它来绘制图形。 1. `Graphics`类介绍: `Graphics`类是C#中用于表示图形绘制环境的对象,它可以用来在任何支持GDI+(Graphics Device Interface Plus)的设备上...
在Qt中,可以使用QPainterPath来构造平滑曲线。例如,通过三次贝塞尔曲线连接两点,可以实现更自然的过渡。 ```cpp void drawSmoothCurve(QPainter *painter, const QVector<QPointF> &points) { QPainterPath ...
这个压缩包“安卓Android源码——安卓画曲线图代码.zip”很可能包含了实现这一功能的示例代码。下面我们将深入探讨如何在Android平台上进行曲线图的绘制。 1. **使用Android SDK绘图库** Android SDK本身就提供了`...
`DrawBezier` 和 `DrawBeziers` 方法分别用于绘制单个和一系列的贝塞尔样条曲线,通过四个点来定义曲线的起点、终点和两个控制点。 ##### DrawClosedCurve 和 DrawCurve `DrawClosedCurve` 和 `DrawCurve` 方法...
4. **绘制和填充**:使用Graphics对象的DrawPath方法可以将曲线画出来,而FillPath方法则可以填充交叉区域。填充颜色的选择可以用来区分不同的交叉部分。 5. **优化性能**:对于大规模的数据或复杂的图形,可以考虑...
4. 使用`Graphics`对象的`DrawPath`方法绘制路径。 屏幕保护程序通常由Windows Forms或WPF框架构建,通过继承`ScreenSaverBase`类(在`System.Windows.Forms.ScreenSaver`命名空间下)来实现自定义行为。在本案例中...
3. **绘制路径**:在后台缓冲区的`Graphics`对象上调用`DrawPath`方法,传入之前创建的`GraphicsPath`对象,以在内存画布上绘制曲线。 4. **填充路径(可选)**:如果需要填充曲线内部,可以调用`FillPath`方法。这...
`AddLine()`, `AddBezier()`, `AddArc()`等方法添加路径元素,然后用`Graphics.DrawPath()`方法绘制。 4. **图形变换**: - 可以通过Graphics对象的`TranslateTransform()`, `ScaleTransform()`, `RotateTransform...
- `Graphics.DrawLine()` 或 `Graphics.DrawPath()`:使用Graphics对象绘制线条或曲线。 - `Bitmap.Save()`:将Bitmap对象(即画布)保存为图像文件。 了解以上知识点,你可以构建一个基本的屏幕画笔程序,提供丰富...
5. 使用路径:GraphicsPath类可以创建复杂路径,如曲线、贝塞尔曲线等,然后用Graphics.DrawPath()绘制。 三、游戏品质的动画系统 1. 时间管理:使用Timer控件或System.Threading.Timer来实现帧率控制,确保动画...
在VB(Visual Basic)编程环境中,我们可以利用GDI+(Graphics Device Interface plus)图形库来绘制复杂的图形,包括数学中的正弦曲线。正弦曲线是周期性函数的一个典型代表,它在物理、工程、计算机科学等多个领域...
本项目“c# graphics画图项目”就是利用C#的Graphics类来实现各种图形绘制和图像处理的功能。下面我们将深入探讨C# Graphics的相关知识点。 一、Graphics类 Graphics类是C#中用于在设备上下文上执行图形操作的基础...
在IT行业中,向量字符是一种...总之,使用C#和图像图像技术来画向量字符是一项结合了编程技巧与艺术创意的工作。通过熟练掌握相关类库和方法,我们可以创造出高质量、可缩放的向量字符,适用于各种屏幕尺寸和打印需求。
在设置好画笔属性和曲线数据后,我们使用`QPainter`的`drawPath()`或`drawLines()`方法来绘制曲线。如果使用`drawPath()`,需要先构建一个`QPainterPath`,通过`addPoint()`方法添加每个点,然后调用`drawPath(path)...
除了基础的绘图操作,Android还支持SVG(Scalable Vector Graphics)格式,可以使用`SvgDrawable`或者第三方库如`androidsvg`来加载和显示矢量图形。这样可以保证图形在不同分辨率的设备上都能保持清晰。 总结来说...