计算机图形学实验作业Word下载.docx
《计算机图形学实验作业Word下载.docx》由会员分享,可在线阅读,更多相关《计算机图形学实验作业Word下载.docx(26页珍藏版)》请在冰豆网上搜索。
料、边角料做的手串是十分有价值的。
往常手串的珍藏把玩曾经进入了按品相论价的时期,同样规格的手串因种类、品相不同价钱会相差数倍,其中海黄鬼脸和老料金星小叶檀通常被以为是目前市场上身价最高的木质手串。
“海黄鬼脸是生长过程中的结疤所致,它的结疤跟普通树种不同,纹理外形多样,生动多变,可呈现美丽的图案,特别是用带颗颗鬼脸的一块料做成的海
黄手串,备受玩家喜欢,价钱也就高。
”夏先生还通知记者,小叶紫檀里老料带金星要比不带金星的价钱贵出数十倍“不是一切的小叶紫檀树干都能产生金星,只需
特殊土壤环境下才干构成,而且从老料中开出的金星最为少见。
”正因如此,老料金星小叶紫檀在市场上也是千金难求。
除了自身体质和原本品相,经过长时间把玩构成包浆后也会令手串身价倍增,这就是圈内人常挂在嘴边的“盘”。
木质手串中的紫檀、黄花梨、老山檀等
宝贵木材内部都具有油性,经过长时间正确把玩,串珠自身油脂慢慢外泄,和空气接触后慢慢氧化,相互融通,逐步构成具有琥珀质感的表面皮壳。
“从目前来看,像鬼脸海黄和老料金星小叶檀你买了摆在那里也能增值,但盘出来的手串增值更明显。
”夏先生说,一位老顾客两年前花6万元从他店里买了一串海黄油梨手串,盘好之后他打算出价10万元回收,对方说几钱都不卖。
常言道:
乱世黄金,盛世珍藏。
随着人们生活消费水平不时进步,开端从事手串把玩、珍藏的人越来越多,而材质、品相等的选择都充溢学问,非一日之功。
想了解更多小叶紫檀的干货心得,点击访问:
细辨真伪慎投资
自古以来物以稀为贵,宝贵老料越少价值自然越高,而鱼龙混杂、以次充好的市场现状正提示着文玩新手和投资者认真辨别,谨慎买卖。
夏先生引见说,海南黄花梨和越南黄花梨、小叶紫檀和大叶紫檀在价钱上有很大差距,把越黄当海黄、大叶紫檀当小叶紫檀来珍藏其价值就会大打折扣,这就需求藏家控制相关学问,仔细分辨。
海南黄花梨普通比越南黄花梨贵三倍,市场上有很多商家用越黄充任海黄卖,这就需求买家认真辨别。
普通来讲,海黄颜色相对深一些,纹路明晰流利,
如行云流水,闻起来是幽幽的降香;
而越黄颜色要浅一些,纹路也略粗,闻起来香味里面带点酸。
假如在选择手串时难辨海黄还是越黄,花纹漂亮是首选。
目前市场上带金星的印度小叶檀很受欢送,但业内人士提示,要当心金星是用铜粉加胶伪造的,而分辨金星真伪相对艰难一些,在置办时较为可行的操作是认真察看珠子内侧金星状况。
业内人士表示,辨别手串木质真伪的最好办法就是多看、多闻、多上手,没有一定的阅历积聚,想要经过有限的差别去精确辨别它们似乎很难。
关于初入
门的新手而言,要摆正心态,碰到入眼的手串要冷静一下,心态平和一些,不要有捡漏以至占低价的心态。
在不被夸大广告、侥幸心理左右,多接触真品海黄和小叶
檀手串的同时,量入为出,不盲目置办是谨慎投资的明智选择。
此外,投资的谨慎还体往常“盘出来的好东西”。
像文玩核桃、木质手串这一类藏品都是需求经过把玩者用心盘玩,构成包浆后,充溢灵气光泽的手串就会随之增值。
盘手串要细致、有耐烦,经过用柔软的棉布盘搓、在阴凉处自然放置、让珠子自然单调等过程,不能直接用手盘,特别留意不要在任何时分接触较大的水分。
“前段时间有顾客买了一串十分好的小叶檀手串,直接手盘,没几天珠子就发乌了,原本很有珍藏价值的,可惜了。
”一手串卖家难掩可惜地通知记者。
海黄和紫檀的珍藏价值为业界看好,未来市场前景悲观。
但业界专家表示,投资有风险,特别是对刚入门的新手,谨慎而行许是无害的。
假如您喜欢沉香手串,沉香摆件
沉香鉴别、颐养、珍藏、投资、置办,您的免费沉香顾问
如何挑选小叶紫檀,才不会交学费?
木缘鸿是从传统艺术品行业升级到互联网的保真艺术品文玩平台,平时经常在微信朋友圈会分享有关文玩的各种知识,上文就是一个例子。
如果你也是一个文玩爱好者并且希望了解最靠谱、最流行的文玩知识;
交流学习文玩鉴定技巧;
了解文玩市场的行情,都可以上木缘鸿官网,加木缘鸿个人微信
好口碑看的见各大媒体争相报道
这里需要做一些提醒:
1、在微信朋友圈,木缘鸿会经常分享自己和玩家朋友的亲身经历、和大家碰到的各类文玩问题。
朋友圈文玩知识分享
朋友圈还有你难得一见的宝贝加工过程
2、店里的新品精品非常多,在微信里可以先睹为快,也可以专享每周仅限一次的秒杀活动。
木缘鸿实体展示
如果您有时间,可以去木缘鸿的实体展厅参观品鉴,去他们那里坐坐,喝喝茶品品香,交交朋友唠唠嗑,木缘鸿实体展厅在:
上海市沪亭南路299号.
木缘鸿作为一家在上海经营实体店多年的老字号,还是中国珠宝玉石首饰行业协会会员单位,同为会员的有大家耳熟能详的‘周大福’、‘周生生’,‘老凤祥’、‘老庙黄金’等等。
经过我们平台检验是值得信赖的。
木缘鸿是从传统艺术品行业升级到互联网的保真艺术品文玩平台,同时也是以原材料采购,生产,推广,销售为一体的综合性平台。
保真方面绝对没问题,由于是从源头把控,很多市面上看不到的精品,却在木缘鸿能够找到。
计算机图形学实验报告
实验名称C程序绘图基础评分
实验日期2013年11月4日指导教师
姓名专业班11地信学号20110830
一、实验目的
1、掌握用TurboC绘图时的步骤。
2、掌握C语言中的基本绘图函数及其用法。
3、掌握简单动画的实现方法。
二、实验要求
1、编写金刚石图案的程序;
2、编写肾形图案相关程序;
3、编写一个正方形程序(每一个比前一个稍小),并在其中画出不同的正方形;
4、编写自人在公路上行走的程序;
5、编写正多边形绘图程序;
三、用C语言编写绘画程序的主要步骤及绘图函数
(一)用C语言绘制图形的步骤:
1、为了调用C语言提供的图形库函数,在程序的开头写上文件的包含命令;
#include<
graphics.h>
2、图形系统初始化及关闭图形方式
初始化是通过调用initgraph()函数来完成,它的调用格式为:
initgraph(*gdriver,*gmode,*path);
该函数的功能是通过从磁盘上装入一个图形驱动程序来初始化图形系统,并将显示器设置到指定图形方式下。
参数gdriver,gmode,path的含义参见教材的有关章节。
在运行图形程序结束后,又要回到文本方式,以进行其它工作,这时应关闭图形方式。
其格式为:
closegraph()。
3、图形显示器的工作方式
1)文本模式与字符坐标系
在未通过图形初始化之前的屏幕上,只能显示字符的方式称为文本模式。
C语言能在指定位置显示字符,该坐标系以屏幕的左上角为坐标原点,水平向为x轴,自左向右;
垂直方向为y轴,自上向下,坐标原点为(1,1)。
能显示的行数、列数及颜色与显示方式有关。
TurboC支持6种不同的文本显示方式。
2)图形模式与点坐标系
在屏幕上能显示图形的方式称为图形方式。
屏幕是由像素点组成的,通过initgraph函数的gmode参数来指定屏幕的分辨率,分辨率决定了像素点的多少。
在图形方式下,屏幕上每个像素的显示位置用点坐标系来描述。
在该坐标系中,屏幕的左上角为坐标原点O(0,0),水平向为x轴,自左向右;
垂直方向为y轴,自上向下。
如图1-1所示。
分辨率不同,水平方向和垂直方向上的点数也不一样,即其maxx、maxy的数值不同。
在TurboC中,坐标数据有两种形式给出:
一种是绝对坐标;
另一种是相对坐标。
绝对坐标的参考点是坐标的原点O(0,0),x和y的值只能取规定范围内的正整数,其坐标值在整个屏幕范围内确定。
相对坐标是相对于“当前点”的坐标,所以其参考点不是坐标系的原点,而是当前点。
要相对坐标中,x和y的取值是相对于当前点在X方向和Y方向上的增量,这个增量可以是正的,也可以是负的,所以x和y的值可以是正整数,也可以是负整数。
此外,把在一个窗口范围内确定的坐标也称为相对坐标。
(二)C语言中的基本绘图函数及其用法:
1、绘图函数
在用绘图函数作图时,有的绘图函数坐标是相对于坐标原点,用绝对坐标。
有的绘图函数用相对坐标,这时要随时注意图形的“当前点位置”,它是绘图的起始位置。
也就是说,图形总是从当前点开始画图。
画完一个图形后,有的当前点不变,仍在原来的位置;
而有时会移到新的位置。
1)直线类绘图函数
用直线类函数绘制直线图形,可以用两种坐标:
几个常用的函数:
①点的绝对定位函数moveto(x,y)
②点的相对定位函数moverel(deltayx,deltay)
它们不绘制图形,只改变当前点的位置,接着用绘图函数绘图。
③指定两个绝对点绘直线函数:
line(x1,y1,x2,y2)
该函数不改变当前点的位置。
④从当前点到指定的绝对点绘直线函数:
lineto(x,y)
该函数画线的同时,将当前点的位置移到(x,y)。
⑤从当前点到指定的相对点绘直线函数:
linerel(dx,dy)
该函数画线的同时,将当前点的位置移到(x+dx,y+dy)。
设当前坐标为(x,y)则
linerel(dx,dy)与lineto(x+dx,y+dy)等价。
⑥读取当前点的位置x,y函数分别为:
getx(void),gety(void)
⑦读取x,y轴的最大值函数分别为:
getmaxx(void),getmaxy(void)
2)多边形类绘图函数
1画矩形函数
rectangle(x1,y1,x2,y2);
2画多边形函数:
drawpoly(n,*polypoints)
其中参数,n为多边形数;
*polypoints指向一个整形数组,共有2n个整数组成,每对整数给出了一个多边形顶点(x,y)坐标。
2、图形属性的设置
图形属性的设置包括绘制该图形所用的颜色和线型。
颜色又分为背景色和前景色:
背景色指的是屏幕的颜色,即绘图时的底色;
前景是指绘图时图形线条所用的颜色。
背景色和前景色的设置,只对设置后所绘制的颜色和线型有作用,对已经绘制的图形无作用。
1)设置前景色
设置前景颜色所用的函数setcolor。
其调用格式为:
setcolor(color);
其中color为一个整型数值,代表所取的颜色。
2)设置背景色
设置背景颜色所用的函数sebktcolor。
setbkcolor(color);
3)设置线型
设置当前绘图所用的线型和线宽,用函数setlinestyle。
线型和线宽的设置仅限于对直线类图形有效。
setlinestyle(sty,pat,b);
sty:
整型值,用来定义所画直线的类型;
pat用户定义线型使用;
b整型值,用来定义定义所画直线的线宽。
在屏幕上绘制出各种简单的几何图形,要求设置不同的线形和颜色。
3、填充
填空是指用指定的模式和颜色来填空一个指定的封闭区域。
1)设置当前的填充模式和颜色
设置填充模式和颜色,用函数setfillstyle,其调用格式为:
setfillstyle(pattern,color);
2)实施填充
对于指定的一块有界的封闭区域进行填充操作,用函数floodfill,其调用格式为:
floodfill(x,y,,bcolor);
参数(x,y)指位于填充区域内任意一点的坐标,该点作为填充的起始点,参数bcolor作为填充区域的边界颜色。
如果起始点在封闭区域内,则区域内部被填充;
如果起始点在封闭区域外,则区域外部被填充。
同学们可以自行验证。
3)其它填充函数
以下几个填充函数,均须事先由setfillstyle函数指定当前的填充模式和颜色。
①绘制并填充实椭圆函数:
fillellipse(x,y,rx,ry);
②绘制并填充实椭圆扇区函数:
sector(x,y,angs,ange,rx,ry)
③绘制并填充多边形函数:
fillpoly(nps,*pxy)
4、屏幕管理
TurboC2.0提供了11个函数,用于对屏幕和视区进行管理。
1)设置视图区
在图形方式下,可用函数setviewport在屏幕上定义一个视图区。
视图区相当于一个用于绘图的窗口。
视图区的位置和大小用屏幕的绝对坐标定义,并且可把视图区设置为裁剪和不裁剪两种状态。
函数setviewport的调用格式为:
setviewport(x1,y1,x2,y2,c);
参数x1,y1:
为视图区矩形的左上角顶点坐标;
x2,y2:
为视图区矩形的右下角顶点坐标。
c为裁剪状态参数。
c=1,超出视图区的图形部分被自动裁剪掉;
c=0时,对超出部分不作裁剪处理。
应注意:
视图区建立以后,所有的图形输出坐标都是相对于当前视图区的,即视图区左上角点为坐标(0,0)点,而与视图区和图形在屏幕上的位置无关。
在默认情况下,整个屏幕为一个视图区。
2)清除视图区
清除视图区用函数clearviewport。
它的作用是清除掉当前视图区,将当前点的位置设置于屏幕左上角(0,0)点。
调用格式为:
clearviewport();
3)清屏
清屏的函数为cleardevice();
四、程序调试中的问题
在Options中directories分别把
改到TC安装路径下:
到
经过修改合适。
基本都是路径有错误,修改之后就合适。
五、程序运行结果或数据
1、金刚石图案
2、肾形图案
3、正方形图案
5、人在公路上行走
5、正多边形图案
六、实验收获及体会
1)可以充分运用TurboC2.0,我们对TurboC的环境更加熟悉,也对计算机图形学里涉及的函数有一个更深的理解。
2)在TurboC2.0中编写,要求的程序,并且调试错误;
3)将TurboC2.0中出现的错误,改正过来,从中了解并且知道TurboC2.0中相关程序。
4)在TurboC2.0出现的问题一一纠正,了解并且绘制出自己想要的图案,按要求绘制相关图案;
5)将TurboC2.0熟练的运用,掌握相关的技巧;
6)可以对C语言的进一步认识,熟悉掌握相关的知识;
7)对C语言初步了解,还待提高。
七、参考源程序(可附页)
1、金刚石图案的程序
#include<
math.h>
main()
{
floatt;
intx0=320,y0=240;
intn,i,j,r,x[50],y[50];
intgdriver=DETECT,gmode;
printf("
inputn(23-31)andr(100-200)\n"
);
scanf("
%d,%d"
&
n,&
r);
initgraph(&
gdriver,&
gmode,"
C:
\\tc"
cleardevice();
setbkcolor(9);
setcolor(4);
t=6.28318/n;
for(i=0;
i<
n;
i++)
{x[i]=r*cos(i*t)+x0;
y[i]=r*sin(i*t)+y0;
}
=n-2;
{for(j=i+1;
j<
=n-1;
j++)
line(x[i],y[i],x[j],y[j]);
getch();
closegraph();
2、肾形图案相关程序
#definePI3.1415926
{
intx,y,r,r1;
doublea;
intgdriver=9,gmode=2;
d:
inputradus(<
150)\n"
%d"
setbkcolor(MAGENTA);
setcolor(WHITE);
for(a=0;
a<
2*PI;
a+=PI/27)
x=r*cos(a)+320;
y=r*sin(a)+240;
r1=abs(x-320);
circle(x,y,r1);
getch();
}
3、一个正方形程序
voidmain(void)
intgdriver=DETECT,gmode,errorcode;
inti,c,x=5,y=6;
inputcolornumber:
\n"
c);
\\TC"
setbkcolor(14);
setcolor(9);
for(i=c;
c+8;
setcolor(i);
rectangle(x,y,x+140,y+104);
x=x+70;
y=y+52;
setfillstyle(1,i);
floodfill(x,y,i);
4、人在公路上行走
#include<
conio.h>
stdio.h>
stdlib.h>
dos.h>
voidt1(intx1,intx,inty)
line(0,y/2+72,x,y/2+72);
circle(x1,y/2,10);
line(x1,y/2+10,x1-5,y/2+38);
line(x1-5,y/2+38,x1+5,y/2+52);
line(x1+5,y/2+52,x1-12,y/2+65);
line(x1-5,y/2+38,x1,y/2+54);
line(x1,y/2+54,x1-8,y/2+70);
line(x1-8,y/2+10,x1-8,y/2+35);
line(x1,y/2+10,x1+1,y/2+25);
line(x1+1,y/2+25,x1+10,y/2+32);
voidt2(intx1,intx,inty)
circle(x1+40,y/2,10);
line(x1+40,y/2+10,x1+28,y/2+50);
line(x1+28,y/2+52,x1+11,y/2+47);
line(x1+30,y/2+40,x1+52,y/2+50);
line(x1+52,y/2+50,x1+42,y/2+70);
line(x1+39,y/2+11,x1+24,y/2+22);
line(x1+24,y/2+22,x1+34,y/2+32);
line(x1+39,y/2+11,x1+45,y/2+30);
line(x1+45,y/2+30,x1+58,y/2+24);
intgdriver=DETECT,gmode,errorcode;
intx,y,x1;
intbuf1[3000],buf2[4000];
initgraph(&
E:
\\TC"
x=getmaxx();
y=getmaxy();
x1=12;
while(!
kbhit())
sound(200);
while(x1+58<
x)
{t1(x1,x,y);
delay(4500);
cleardevice();
t2(x1,x,y);
;
x1=x1+50;
nosound();
closegraph();
5、正多边形绘图程序
include<
raphics.h>
voidpolygon(in