图形学 正轴测投影 c语言,图形学基础(二)图形变换:3D 平行投影

本文介绍了使用C语言实现3D图形的正轴测投影,包括齐次坐标系、图形读取、三视图的绘制。通过矩阵变换实现不同视角的投影效果,如主视图、俯视图、侧视图。代码中定义了CBaseClass类,包含各种投影变换函数。
摘要由CSDN通过智能技术生成

因为我自己也没太能理解,所以在此就只写一些些。这么多分类,看着就头疼。

94f8265c80edb736210685b4e57b93e1.png

准备(齐次坐标系/图形)

新建BaseClass类(.h .cpp),添加必要的参数和函数。

typedef double array2d[5][5];

typedef double array[24];

class CBaseClass

{

public:int theta_y, phi_x, xx, yy, nn, n;

array X, Y, Z, C, XT, YT, ZT, XP, YP, ZP, CP;

array2d A, Ah, Aw;

double ax[9], ay[9], az[9];

double bx[9], by[9], bz[9];

public:

CBaseClass();

virtual ~CBaseClass();

void ReadWorkpiece();void Calculate(array2d B);

void MCalculate(array2d B);

void XCalculate(array2d B);

void Drawtext();

void Display();

void Draw();

void Drawve();

void Drawvt();

void Drawse();

void Drawst();

void DrawViewV(CDC* pdc, CRect rr);

void DrawViewH(CDC* pdc, CRect rr);

void DrawViewW(CDC* pdc, CRect rr);

void moveto(double x, double y, CDC* pdc);

void lineto(double x, double y, CDC* pdc);

void cleanMatrice(array2d B);

};

(一些基本函数上一篇给过了,就不再赘述了。另一些辅助函数,用到时再说。)

1、齐次坐标系

d2f5daf8ed24009e2149b94b616bddb6.png

线代的话,高中水平就够了。齐次坐标系的使用,是为了让平移运算可以和旋转、缩放等运算一起处理。这里不再赘述基本变换。

2、图形

8fc9ebd644cc4c53a7673945e1413b3c.png

void CBaseClass::ReadWorkpiece()

{

X[1] = 0; Y[1] = 0; Z[1] = 0; C[1] = 1;

X[2] = 45; Y[2] = 0; Z[2] = 0; C[2] = 1;

X[3] = 45; Y[3] = 37; Z[3] = 0; C[3] = 1;

X[4] = 0; Y[4] = 37; Z[4] = 0;

  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值