计算机绘图原理 —— 直线的绘制

任何复杂的几何图形都是由基本图形元素(点、线等)组成的,直线等基本图形生成的关键是如何利用算法及数学公式描述并在图形设备上显示出来。

1. 直线的绘制

平面直线由两个端点唯一确定,绘制直线函数的一般表达式为:

  • line(y1, x1, y2, x2, <属性参数>)

在图形设备上绘制直线,实质上就是按照直线的延伸方向 y2y1x2x1 )不断地生成光点所连成的轨迹或绘出微小的线段,光点的间距及绘图笔移动的距离称为步长。那么,直线的绘制算法有许多种,下面主要介绍两种,即逐点比较法DDA 算法。

  • 逐点比较法

    位置偏差的判别方法:图中OA是要生成的直线的理论位置,起点是O,终点是A,设当前实际画出的点位置为X轴上的一点1,斜率等于零且小于α,可以判定下一步进的方向为Y的正方向。设前进一个步距的点为B,OB的斜率为β,如果β>α,则有tanβ>tanα,这说明OB线位于OA线的上面,判定下一次步进应在X轴方向;如果β<α,那么tanβ&l;tanα,说明OB线位于OA线的下面,下一次步进应沿Y轴方向步进。

    tanβtanα=yBxByAxA=xAyBxByAxBxA


    这里写图片描述

    当直线位于第一象限时, xA,xB>0 ,因而可以用下式判别 B 点的位
    置偏差, Δ=xAyBxByA
    Δ0 ,在 X 轴方向绘制一个单位步长,xi+1=xi+I
    Δ<0 ,在 Y 轴方向绘制一个单位步长,yi+1=yi+I

  • DDA 算法

    DDA 算法根据直线的微分方程来绘制直线,设直线的起始坐标 xs,ys ,终点坐标为 xe,ye ,则 Δx=xexs,Δy=yeys ,则要绘制的直线的微分分方程为 Δx=dxdt,Δy=dydt ,令 Δt=max(Δx,Δy) ,取时间步长为 1Δt ,可得上述微分方程的递推公式:

xi+1=xi+ΔxΔtyi+1=yi+ΔyΔt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五道口纳什

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值