目录 上一页 下一页 下一章

第9章 图形显示 -249-

exit:





main
disp

disp
code


mov
int

mov
int
endp
proc

endp
ends
end

ax,0003h
10h

ah,4ch
21h

near



main

;设置字符显示模式3


;结束进程



;DISP子过程与DOTMAP.ASM相同,此处省略



  灵活地应用画点功能可以绘制出更复杂的图形。刚刚讨论的"画文字"是画点功能的一个具体地应用,我们下面的任务就是要解决如何画出任意方向直线的问题。
  解析几何告诉我们坐标系中任意一条直线都可以用方程"y=kx+b"表示,其中k是这条直线的斜率,b是这条直线在y轴上的截距。我们只要根据这个公式编制程序就能在屏幕上画出直线来。请看下面这个程序:
code


start:
k
x0
y0
x1
y1
go_on:








pixel:


segment
assume
org
jmp
db
db
db
db
db
mov
sub
mov
mov
sub
mov

mov
int

mov
mov

cs:code,ds:code
100h
go_on
0,0
0
0
200
200
al,y1
al,y0
k,al
al,x1
al,x0
k+1,al

ax,0004h
10h

cl,x0
dl,y0



;跳过数据区
;保存斜率
;起始点的X坐标
;起始点的Y坐标
;终止点的X坐标
;终止点的Y坐标
;计算Y1-Y0

;将Y1-Y0保存至K
;计算X1-X0

;将X1-X0保存至K+1

;设置图形显示模式4


;将起始点的(X0,Y0)送至CX-DX


Copyright © 2004-2015 Reanimator www.cookmoon.org

目录 上一页 下一页 下一章