请输入您要查询的百科知识:

 

词条 D3PROJECT
释义

DOS SVGACC图形开发库函数

原型 extern int far d3project (int points, ProjParameters far *params, D3Point far *inary, D2Point far *outary)

输入 numpoints - 被投影的点数

params - 包含投影参数的ProjParameters型指针

eyex, eyey, eyez - 取景器的三维位置

scrd - 从取景器到投影屏的距离

theta - 从三维坐标X轴正向到取景器方向的角度

phi - 从三维坐标Z轴正向到取景器方向的角度

inary - 指向包含投影点的D3Point型指针

输出 成功返回1,任何一点失败返回0

outary - 指向投影后的D2Point型点数组

用法

D3PROJECT将inary中指定数目(numpoints)的三维点按照params指定的参数投影成二维点(存储在outary)。此函数假定outary已合适分配。三维空间取景器的位置通过ProjParameters结构中的eyex, eyey,eyez给出。取景器面向的方向由应用球坐标系的ProjParameters结构中的scrd,theta,phi确定。一个平行于实坐标系的虚坐标系位于取景器的位置。scrd为从取景器到投影屏幕(也就是当前定义的显示器上的视口)中心的距离。Theta为从虚轴X到投影屏幕在X-Y平面上的角度。正的角度表示在X-Y平面上顺时针旋转。最后,相对于X-Y平面的俯仰角通过phi给出。正的角度表示在平面以上,负的表示在平面以下。

如果有一个点投影到取景器的后面,也就是取景器背向投影屏幕的一侧,D3PROJECT返回0表示有一个或更多的操作失败点。失败点的X、Y返回值最大可达到32768个以使得他们很容易被识别出来。

另查 D3ROTATE, D3TRANSLATE, D3SCALE, SETVIEW

例子

/* shows d3project 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 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())

exit(1);

if (whichmem()<512)

exit(1);

res640();

proj.eyex = -1040;

proj.eyey = -600;

proj.eyez = -1200;

proj.scrd = 1700;

proj.theta = 30;

proj.phi = 45;

dummy = d3project(8,&proj,cube,plot);

drwcube();

getch();

videomodeset(vmode);

}

void drwcube(void)

{

int i;

for(i=0;i<=2;i++)

drwline(1,10,plot[i].x,plot[i].y,plot[i+1].x,plot[i+1].y);

drwline(1,10,plot[3].x,plot[3].y,plot[0].x,plot[0].y);

for(i=4;i<=6;i++)

drwline(1,10,plot[i].x,plot[i].y,plot[i+1].x,plot[i+1].y);

drwline(1,10,plot[7].x,plot[7].y,plot[4].x,plot[4].y);

for(i=0;i<=3;i++)

drwline(1,10,plot[i].x,plot[i].y,plot[i+4].x,plot[i+4].y);

return;

}

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2024/12/23 23:12:02