STM32旋转立方体

STM32旋转立方体

用STM32F429实现LCD屏幕驱动,显示旋转立方体。不是显示一个动画,而是根据点的坐标实时运算,显示在屏幕上。

要把一个三维坐标进行旋转,可以采用旋转矩阵的方式,旋转矩阵的用途也有很多,在此不一一列举。

以下为对x坐标进行旋转变换,原坐标左乘绕X轴旋转矩阵即可得出旋转之后的坐标,下面三个变换同理。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

一个点需要进行三次矩阵点乘,一个正方体一共有8个点。旋转之后再选择一个坐标平面投影显示即可简单实现三维图形旋转变换的效果。

代码如下

以下代码仅仅展示3D立方体显示的计算过程,STM32驱动LCD屏幕等代码就不列举了。
文末有工程下载链接。

因为用到了大量的浮点数运算以及三角函数和矩阵运算,所以使用了ST官方的DSP库来提升运算速度。

#include "3D.h"
#include "bsp_lcd.h"
#include "arm_math.h"//ARM官方的DSP库
#define PI 3.1415926
#define XX 0.05
#define YY 0.05
#define ZZ 0.01

float box[8][3]={
   {
   -80,-80,-80},{
   -80,80,-80},{
   80,80,-80},{
   80,-80,-80},
									{
   -80,-80,80},{
   -80,80,80},{
   80,80,80},{
   80,-80,80}};
float box_dis[8][3]={
   {
   0,0,0},{
   0,0,0},{
   0,0,
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值