科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件VC.NET的GDI+编程入门教程之图形

VC.NET的GDI+编程入门教程之图形

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

长方形是由四条边组成的具有四个直角的几何图形,为了绘制一个长方形,可以定义围成长方形的矩形值,或定义它的位置和尺寸。

作者:刘涛编译 来源:天极网 2007年11月16日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
二、线条

  (一)一条直线

  直线连接了两个点,这意味着直线有起点和终点。


图五、直线示意图

  起点和终点是截然不同的两个点,正是基于这一点,直线也可以用两个点(Ponit)来表示,或者用笛卡尔坐标系中的四个坐标数值表示。Graphics提供了以下重载的DrawLine()方法来绘制一条直线,:

public: void DrawLine(Pen *pen, Point pt1, Point pt2);
public: void DrawLine(Pen *pen, PointF pt1, PointF pt2);
public: void DrawLine(Pen *pen, int x1, int y1, int x2, int y2);
public: void DrawLine(Pen *pen, float x1, float y1, float x2, float y2);

  如果直线用自然数表示,它的起点可以用pt1表示,终点用点pt2表示,如果直线用实数绘制,它在PointF pt1处开始,在PointF pt2处结束。或者,可以用坐标(x1, y1)来表示起点,用坐标(x2, y2)表示终点。同样类型的直线可以用十进制数从点(x1, y1) 处到点 (x2, y2).处。

  下面的代码画了三条直线:

private: System::Void Form1_Paint(System::Object * sender,
System::Windows::Forms::PaintEventArgs * e)
{
 Pen *penCurrent = new Pen(Color::Red);
 e->Graphics->DrawLine(penCurrent, 20, 20, 205, 20);
 penCurrent = new Pen(Color::Green);
 e->Graphics->DrawLine(penCurrent, 40, 40, 225, 40);
 penCurrent = new Pen(Color::Blue);
 e->Graphics->DrawLine(penCurrent, 30, 60, 215, 60);
}


图六:绘制三条直线

  (二)一系列直线

  上述的DrawLine()方法用来画一条直线,如果打算一次画一组直线的话,可以使用Graphics::DrawLines()方法,它重载了两个版本:

public: void DrawLines(Pen *pen, Point points[]);
public: void DrawLines(Pen *pen, PointF points[]);

  为了使用这种方法,需要使用代表笛卡尔坐标的自然数定义Point数组,或只用实数定义PointF数组,例子代码如下:

private: System::Void Form1_Paint(System::Object * sender,
System::Windows::Forms::PaintEventArgs * e)
{
 Point Coordinates[] = { Point(20, 10), Point(205, 20),
 Point(40, 40), Point(225, 60),
 Point(30, 80), Point(215, 100) };

 Pen *penCurrent = new Pen(Color::Red);
 e->Graphics->DrawLines(penCurrent, Coordinates);
}

  这将产生如下的效果:


图七、系列直线效果图
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章