知方号

知方号

Visual C++6.0画三维立体图形<立体几何绘制图案>

在画三维立体图之前,主要是先要找到二维和三维的对应关系,这是转化的关键。 关键代码如下:

S[i].x=P[i][1]+sqrt(2)/3.0*(-P[i][0]);S[i].y=P[i][2]+sqrt(2)/3.0*(-P[i][0]);

一、建立边表结构,在同一屏幕上完成三视图和正等轴测投影图

//消隐之前//编译环境:Visual C++ 6.0,EasyX_20230219(beta)#include#include#include#define max 50#include#includeusing namespace std;#define pi 3.14159using namespace std;double ja=35.3;//54.7double rad=(double)ja*pi/(double)180.0;double Dpoint[][4]={{0,0,84,1},{110,0,84,1},{110,0,20,1},{140,0,20,1},{140,0,0,1},{140,80,0,1},{0,80,0,1},{0,80,54,1},{0,60,54,1},{0,60,84,1},{20,60,84,1},{20,20,84,1},{110,20,84,1},{110,20,20,1},{60,20,20,1},{60,80,20,1},{40,80,54,1},{40,60,54,1},{140,80,20,1},{0,0,0,1}};//下标从0开始int ring[]={0,1,12,11,10,9,//0-52,3,18,15,14,13,//6-118,17,16,17,//12-151,2,13,12,//16-193,4,5,18,//20-2311,14,15,16,17,10,//24-2911,12,13,14,//30-3315,18,5,6,7,16,//34-399,10,17,8,//40-430,9,8,7,6,19,//44-490,19,4,3,2,1,//50-554,19,6,5//56-59};//构成面的顶点int surface[12][2]={{0,5},{6,11},{12,15},{16,19},{20,23},{24,29},{30,33},{34,39},{40,43},{44,49},{50,55},{56,59}};//主视图int XOZ_ring[]={1,2,14,10,0,7,16,10,3,15,17,7,6,4};int XOZ_surface[3][2]={{0,3},{4,7},{8,13}};//侧视图int YOZ_ring[]={0,2,13,12,11,10,8,7,15,13,3,4,5,15};int YOZ_surface[3][2]={{0,3},{4,9},{10,13}};//俯视图int XOY_ring[]={2,0,9,10,11,12,3,5,15,14,12,2,14,15,16,17,10,11,16,7,9,17};int XOY_surface[4][2]={{0,5},{6,11},{12,17},{18,21}};//正等轴投影int XYZ_ring[]={3,4,5,18,5,6,7,16,15,18,2,3,18,15,14,13,1,2,13,12,11,12,13,14,10,11,14,15,16,17,7,8,17,16,8,9,10,17,0,1,12,11,10,9};int XYZ_surface[9][2]={{0,3},{4,9},{10,15},{16,19},{20,23},{24,29},{30,33},{34,37},{38,43}};//三维坐标转换为右手坐标系的二维坐标void transfer(double P[max][4], int n, POINT S[]){int i,j;for(i=0;i

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。