词条 | D3SCALE |
释义 | DOS SVGACC图形开发库函数 原型 extern void far d3scale (int points, int xscale, int yscale,int zscale, D3Point far *inary, D3Point far *outary) 输入 numpoints - 缩放的点数 xscale - X轴方向的缩放因子 yscale - Y轴方向的缩放因子 zscale - Z轴方向的缩放因子 inary - 指向包含待缩放点数组的D3Point型指针 输出 无返回值 outary - 指向包含缩放后点数组的D3Point型指针 用法 D3SCALE将三维数组inary中的每个坐标乘以相应的缩放因子。结果通过outary返回,outary可与inary共用一个空间。缩放因子为256(100hex)被认为是100%,结果无变化。同理,128(80hex)被认为缩小一半;512(200hex)则为放大一倍。此函数假定outary已合适分配. 例子 /* * shows d3scale works */ #include <stdlib.h> #include <conio.h> #include "svgacc.h" D2Point plot[8]; void drwcube(void); void main(void) { int vmode,i,dummy; ProjParameters proj; D3Point scube[8]; D3Point cube[8] = { { 100,-100, 100}, { 100,-100,-100}, { 100, 100,-100}, { 100, 100, 100}, {-100,-100, 100}, {-100,-100,-100}, {-100, 100,-100}, {-100, 100, 100}}; vmode = videomodeget(); if (!whichvga() || (whichmem() < 512)) exit(1); res640(); proj.eyex = -1040; proj.eyey = -600; proj.eyez = -1200; proj.scrd = 1700; proj.theta = 30; proj.phi = 45; for(i=256;i>=128;i-=4) { d3scale(8,i,i,i,cube,scube); dummy = d3project(8,&proj,scube,plot); drwcube(); sdelay(2); drwcube(); } for(i=132;i<=256;i+=4) { d3scale(8,i,i,i,cube,scube); dummy = d3project(8,&proj,scube,plot); drwcube(); sdelay(2); drwcube(); } drwcube(); getch(); videomodeset(vmode); } void drwcube(void) { int j; for(j=0;j<=2;j++) drwline(2,10,plot[j].x,plot[j].y,plot[j+1].x,plot[j+1].y); drwline(2,10,plot[3].x,plot[3].y,plot[0].x,plot[0].y); for(j=4;j<=6;j++) drwline(2,10,plot[j].x,plot[j].y,plot[j+1].x,plot[j+1].y); drwline(2,10,plot[7].x,plot[7].y,plot[4].x,plot[4].y); for(j=0;j<=3;j++) drwline(2,10,plot[j].x,plot[j].y,plot[j+4].x,plot[j+4].y); return; } |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。