微机原理课程设计制作奥运五环效果Word下载.docx

上传人:b****8 文档编号:22826659 上传时间:2023-02-05 格式:DOCX 页数:17 大小:112.46KB
下载 相关 举报
微机原理课程设计制作奥运五环效果Word下载.docx_第1页
第1页 / 共17页
微机原理课程设计制作奥运五环效果Word下载.docx_第2页
第2页 / 共17页
微机原理课程设计制作奥运五环效果Word下载.docx_第3页
第3页 / 共17页
微机原理课程设计制作奥运五环效果Word下载.docx_第4页
第4页 / 共17页
微机原理课程设计制作奥运五环效果Word下载.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

微机原理课程设计制作奥运五环效果Word下载.docx

《微机原理课程设计制作奥运五环效果Word下载.docx》由会员分享,可在线阅读,更多相关《微机原理课程设计制作奥运五环效果Word下载.docx(17页珍藏版)》请在冰豆网上搜索。

微机原理课程设计制作奥运五环效果Word下载.docx

为了简便起见,考虑一个圆心在坐标原点的圆,而且只计算八分圆周上的点,其余圆周上的点利用对称性就可得到。

  圆有“八对称性”,如下图所示。

  

  显然,我们只需要知道了圆上的一个点的坐标(x,y),利用八对称性,我们马上就能得到另外七个对称点的坐标。

给出圆心的坐标(0,0)和半径R,求圆图像的最佳逼近点。

我们求的八分之一圆孤为(0,R)-(R√2,R√2),可知最大位移方向是x方向,x0=0,y0=R,每次对x自增,然后判断y是否减1,直到x>

=y为止(从点(0,R)到圆的八分之一处就有这种情况)。

误差量由F(x,y)=x^2+y^2-R^2给出。

先找递推关系,若当前d=F(x+1,y-0.5)>

0,则y须减1,则下一d值为

d=F(x+2,y-1.5)

=(x+2)^2+(y-1.5)^2-R^2

=d+2x-2y+5,

若当前d=F(x+1,y-0.5)<

0,则y不变,只有x增1,则下一d值为

d=F(x+2,y-0.5)

=d+2x+3。

d的初值,d0=F(1,R-0.5)=1.25-R,则可以对d-0.25进行判断,因为递推关系中只有整数运算,所以d-0.25>

0即d>

0.25,这和d>

0等价,所以d取初值1-R。

1.4程序流程图与程序代码

1.4.1流程图

1.4.2程序源代码

datasegment

mdw?

ndb?

;

像素颜色值

rdw30;

五环半径

x1dw80;

第一个圆的圆心

y1dw80

x2dw?

y2dw?

x3dw?

y3dw?

x4dw?

y4dw?

xdw?

ydw?

ddw?

adw?

bdw?

dataends

codesegment

assumecs:

code,ds:

data

mainprocfar

start:

movax,data

movds,ax;

movsi,0

movdi,0

movsi,x1

movx3,si

movsi,y1

movy3,si

callcircul

mainendp

;

*************五环绘制子程序***********

circulprocnear

pushsi

movah,0

moval,0dh

int10h

*************依次绘制正面五环***********

front:

movn,0eh;

第一个环,黄色

movx,0

movbx,r

movy,bx

movsi,x3

movx1,si

movsi,y3

movy1,si

callsingle_circle

movn,0ah;

第二个环,绿色

addy1,bx

shrbx,1

movn,04h;

第三个环,红色

movn,09h;

第四个环,蓝色

addx1,bx

movn,08h;

第五个环,灰色

jmpback

*********绘制背面面各环**********

back:

第一个环,红色

movn,08;

第二个环,灰色

第三个环,蓝色

第四个环,绿色

第五个环,黄色

popsi

calldelay

jmpfront

circulendp

*********逐步进给调整坐标,单环绘制**********

single_circleprocnear

movsi,1

subsi,r

movd,si;

d=1-r,x=0

lin3:

movsi,x;

si=x

movdi,y;

di=y=r

addsi,x1

adddi,y1

movdx,si;

dx=si+x1

movcx,di;

cx=di+y1

movsi,x;

movdi,y

cmpsi,di;

比较x与y,x>

y则八分之一圆弧绘制结束

jglin

callhua;

x<

y

cmpd,0;

jgelin1;

movsi,2

movax,0

movAX,SI

imulx

movsi,ax

addsi,3

addd,si

lin2:

incx

jmplin3

lin1:

movsi,2

movax,si

movdi,x

subdi,y

imuldi

addsi,5

decy

jmplin2

lin:

ret

single_circleendp

huadianprocnear;

写像素,al=颜色值,bh=页号

movah,0CH

moval,n

movbh,0

huadianendp

*********八分法绘制圆环**********

huaprocnear

callhuadian;

画第一点(x,y)

movx2,dx

movy2,cx

subdx,x1

subcx,y1

xchgdx,cx

adddx,x1

addcx,y1

画对称点(y,x)

movdx,x2

movcx,y2

movm,dx

addm,dx

subdx,m

画点(-y,x)

movm,cx

addm,cx

subcx,m

画点(-y,-x)

画点(x,-y)

画点(-x,-y)

画点(-x,y)

画点(y,-x)

calldelay

huaendp

***********延时***************

delayprocnear

pushdx

pushcx

movdx,2000

d1:

movcx,3000

d2:

loopd2

decdx

jnzd1

popcx

popdx

delayendp

codeends

endstart

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 哲学历史

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1