c语言坐标画直线函数,三、Windows图像处理—画点和线(直线)

本文介绍了Windows系统中使用C语言进行图形绘制时,如何利用LineTo、MoveToEx等函数画直线的方法。文章详细讲解了画线函数的工作原理,以及如何使用MoveToEx设定起点并结合LineTo画出直线。同时,提到了坐标值在不同Windows版本中的限制,以及如何通过数组和Polyline函数简化多条直线的绘制。
摘要由CSDN通过智能技术生成

Windows可以画直线、椭圆线(椭圆圆周上的曲线)和贝塞尔曲线。Windows 98支援的7个画线函数是:

LineTo 画直线。

Polyline和PolylineTo 画一系列相连的直线。

PolyPolyline 画多组相连的线。

Arc 画椭圆线。

PolyBezier和PolyBezierTo 画贝塞尔曲线。

另外,Windows NT还支持3种画线函数:

ArcTo和AngleArc 画椭圆线。

PolyDraw 画一系列相连的线以及贝塞尔曲线。

这三个函数Windows 98不支援。

在本章的后面我将介绍一些既画线也填入所画图形的封闭区域的函数,这些函数是:

Rectangle 画矩形。

Ellipse 画椭圆。

RoundRect 画带圆角的矩形。

Pie 画椭圆的一部分,使其看起来像一个扇形。

Chord 画椭圆的一部分,以呈弓形。

设备内容的五个属性影响着用这些函数所画线的外观:目前画笔的位置(仅用于LineTo、PolylineTo、PolyBezierTo和ArcTo )、画笔、背景方式、背景色和绘图模式。

画一条直线,必须呼叫两个函数。第一个函数指定了线的开始点,第二个函数指定了线的终点:

MoveToEx (hdc, xBeg, yBeg, NULL) ;

LineTo (hdc, xEnd, yEnd) ;

MoveToEx实际上不会画线,它只是设定了设备内容的「目前位置」属性。然后LineTo函数从目前的位置到它所指定的点画一条直线。目前位置只是用于其它几个GDI函数的开始点。在内定的设备内容中,目前位置最初设定在点(0,0)。如果在呼叫LineTo之前没有设定目前位置,那么它将从显示区域的左上角开始画线。

小历史:

Windows的16位版本中,用来改变目前位置的函数是MoveTo。该函数只调整三个参数-设备内容句柄、x和y坐标。函数通过两个16位数拼成的32位无正负号长整数传回先前的目前位置。然而,在Windows的32位版本中,坐标是32位的数值,而C的32位版本中又没有定义64位的整数数据型态,因此这种改变意味着MoveTo在其传回值中不再指出先前的目前位置。在实际的程序写作中,由MoveTo传回的值几乎从来不用,因此就需要一个新函数,这就是MoveToE

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值