DAA法匯編語言四個象限直線插補_第1頁
DAA法匯編語言四個象限直線插補_第2頁
DAA法匯編語言四個象限直線插補_第3頁
DAA法匯編語言四個象限直線插補_第4頁
DAA法匯編語言四個象限直線插補_第5頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、DDA法匯編語言四個象限直線插補DDA法匯編語言四個象限直線插補程序流程圖如圖所示。 四個象限直線插補程序流程圖#include <graphics.h>#include <stdlib.h>#include <stdio.h>#include <conio.h>#include <math.h>int xe,ye,jvx,jvy,jrx,jry,xi,yi,jsh,lxy;/* xe、ye終點坐標jvx、jvy被積函數(shù),jrx、jry余數(shù)寄存器xi、yi動點坐標,jsh計數(shù)長度, ,lxy象限號*/void zxcb1(); /聲明

2、第一象限直線插補函數(shù)void zxcb2(); /聲明第2象限直線插補函數(shù)void zxcb3(); /聲明第3象限直線插補函數(shù)void zxcb4(); /聲明第4象限直線插補函數(shù)void main() /主函數(shù) int gd=DETECT,gm; /顯示模式變量 again: clrscr(); /清屏 printf("L1_L4: Please input xe,ye:"); /提示輸入終點坐標 scanf("%d,%d",&xe,&ye); /等待輸入 if(xe=0&&ye=0) printf("inp

3、ut error,enter any continue."); getch();goto again; /輸入錯誤繼續(xù)輸入 if(xe=0&&ye>0)lxy=2; /終點為第2象限 if(xe=0&&ye<0)lxy=4; /終點為第4象限 if(ye=0&&xe>0)lxy=1; /終點為第一象限 if(ye=0&&xe<0)lxy=3; /終點為第3象限 if(xe>0&&ye>0)lxy=1; /終點為第一象限 if(xe>0&&ye<

4、;0)lxy=4; /終點為第4象限 if(xe<0&&ye>0)lxy=2; /終點為第2象限 if(xe<0&&ye<0)lxy=3; /終點為第3象限 xi=320;yi=240; /動點置屏幕中間 initgraph(&gd,&gm,""); /圖形顯示方式 jsh=0;jrx=0;jry=0;jvx=abs(xe);jvy=abs(ye); switch(lxy) case 1: zxcb1();break; /第一象限調用插補程序函數(shù)1 case 2: zxcb2();break; /第一象

5、限調用插補程序函數(shù)2 case 3: zxcb3();break; /第一象限調用插補程序函數(shù)3 case 4: zxcb4();break; /第一象限調用插補程序函數(shù)4 gotoxy(10,24);printf("L%d: xe=%d,ye=%d",lxy,xe,ye); /顯示終點坐標 gotoxy(10,25);printf("press any key:"); /提示按任意鍵 getch(); /等待按鍵void zxcb1() /第一象限插補函數(shù)1 asm mov cx, xi /顯示起點 asm mov dx, yi asm mov ah,

6、 0ch asm mov al, 2 asm int 10h again: asm mov ax, jvx /X方向積分 asm add jrx, ax asm jnc next1 /無進位下 asm inc xi /下正X方向進給next1: asm mov ax, jvy /Y方向積分 asm add jry, ax asm jnc next2 /無進位下轉 asm dec yi /正Y進給next2: asm mov cx, xi /顯示動點 asm mov dx, yi asm mov ah, 0ch asm mov al, 2 asm int 10h asm mov dx, 0100

7、h /延時next2a: asm mov cx, 00ffh next2b: asm dec cx asm jnz next2b asm dec dx asm jnz next2a asm inc jsh /計數(shù)長度加1 asm jnz again /未到終點繼續(xù) void zxcb2() /第2象限插補函數(shù)1 asm mov cx, xi /顯示起點 asm mov dx, yi asm mov ah, 0ch asm mov al, 2 asm int 10h again: asm mov ax, jvx /X方向積分 asm add jrx, ax asm jnc next1 /無進位下

8、 asm dec xi /下負X方向進給next1: asm mov ax, jvy /Y方向積分 asm add jry, ax asm jnc next2 /無進位下轉 asm dec yi /正Y進給next2: asm mov cx, xi /顯示動點 asm mov dx, yi asm mov ah, 0ch asm mov al, 2 asm int 10h asm mov dx, 0100h /延時next2a: asm mov cx, 00ffh next2b: asm dec cx asm jnz next2b asm dec dx asm jnz next2a asm i

9、nc jsh /計數(shù)長度加1 asm jnz again /未到終點繼續(xù) void zxcb3() /第3象限插補函數(shù)1 asm mov cx, xi /顯示起點 asm mov dx, yi asm mov ah, 0ch asm mov al, 2 asm int 10h again: asm mov ax, jvx /X方向積分 asm add jrx, ax asm jnc next1 /無進位下 asm dec xi /下負X方向進給next1: asm mov ax, jvy /Y方向積分 asm add jry, ax asm jnc next2 /無進位下轉 asm inc y

10、i /負Y進給next2: asm mov cx, xi /顯示動點 asm mov dx, yi asm mov ah, 0ch asm mov al, 2 asm int 10h asm mov dx, 0100h /延時next2a: asm mov cx, 00ffh next2b: asm dec cx asm jnz next2b asm dec dx asm jnz next2a asm inc jsh /計數(shù)長度加1 asm jnz again /未到終點繼續(xù) void zxcb4() /第一象限插補函數(shù)1 asm mov cx, xi /顯示起點 asm mov dx, yi asm mov ah, 0ch asm mov al, 2 asm int 10h again: asm mov ax, jvx /X方向積分 asm add jrx, ax asm jnc next1 /無進位下 asm inc xi /下正X方向進給next1: asm mov ax, jvy /Y方向積分 asm add jry, ax asm jnc next2 /無進位下轉 asm inc yi /負Y進給next2: asm mov cx, xi /顯示動點 asm mov dx, yi asm mov ah, 0ch as

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論