计算机模拟数学实验动画,计算机图形学实验-简单动画的实现、三维图形变换.docx...

安徽大学计算机实验教学中心PAGE

安徽大学计算机实验教学中心

PAGE 1

学号 专业 姓名

实验日期2018.12.11 教师签字 成绩

实验报告

【实验名称】简单动画的实现、三维图形变换

【实验目的】

指定图形运动轨迹,实现物体的移动过程和移动速度控制;

(2) 理解并掌握形体的投影变换的原理;

【实验原理】

1)简单动画的原理:显示一个对象,然后把它抹去,把这个图形进行变换后,再在新位置予以显示.当上述过程重复执行时,在视觉上便产生了运动;了解 getimage函数和 putimage函数、imagesize函数、malloc 函数、 cleardevice函数的使用。

2)绘制一点透视图的变换矩阵:

1 0 0 0

T= 0 1 0 0

0 0 0 1/d

L m n 1+n/d

得变换后的点坐标为:

x’=(x+l)/(d+(n+z)*d)

y’=(y+m)/(d+(n+z)*d)

z’=0

设计思想

图形的移动

分别画出一个六边形和一个三角形,用两个一维数组p和A来存放其各点坐标;运用putimage(x,y,p,op)函数将六边形不断地向三角形平移,直到到达三角形的边界位置为止。

用到的函数如下:

getimage(x1,y1,x2,y2,p);将屏幕左上角(x1,y1),右下角(x2,y2)的矩形区域内的图象存到指针P所指向的内存区域中。putimage(x,y,p,op);将p所指向的内存区域的内容在屏幕上显示,左上角坐标(x,y)。

一点透视

基本步骤如下:

将三维物体平移到适当位置(l,m,n);

令视点在z轴,进行透视变换,变换矩阵如下:

最后,向xOy面作正投影变换,将结果变换到xOy面上。如此构造的一点透视变换矩阵为:

则三维形体中任意一点(x,y,z)的一点透视变换的齐次坐标计算形式为:

[x’,y’,z’,1]=;

【实验内容】

1.图形的移动显示两个图形,然后移动其中一个图形.当被移动的图形超出屏幕范围时,输

出错误信息“Coordinate out of range”并结束。

#define SHOW_CONSOLE

#include

#include

#include

const int size_x=640,size_y=480;

int main()

{

PIMAGE w;

initgraph(size_x, size_y);//打开一个长640像素,宽480像素的窗口

w = newimage();

circle(100,100,50);

getimage(w,50,50,150,150);

for(int i=0;i<=1000;delay_fps(60),i += 1){

if(i > size_x){

outtextxy(210, 210, "Coordinate out of range");

break;

}

cleardevice();

putimage(i,200,w);

circle(100,100,50);

}

getch();//让屏幕暂停一下

closegraph();//关闭绘图窗口

return 0;

}

2.显示一个立方体的一点透视投影图;(用数组存放正方体的各顶点坐标)。

(选)显示一个立方体的两点透视投影图、斜二测图;(用数组存放正方体的各顶点坐标)。

#define SHOW_CONSOLE

#include "graphics.h" // 引用ege图形库

#include

#include

#include

#include

#include

const int size_x=640,size_y=480;

const double eps = 1e-6;

struct Node{

int x,y,z;

//Node(int a,int b,int c){x=a,b=y,c=z;}

};

std::vector co;

void input()

{

int n,x,y,z;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值