⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qiu.c

📁 自己收集整理和调试OK的三个Game源代码
💻 C
字号:
#include "gui.h"
#include "math.h"


#define	PI		3.14159
#define T			PI/180
#define NN		50
#define DT		PI/NN
#define DIST	0.8
#define R			100

static int n = 1;
float t[3];

float Qi[3][3];

void s_fuzhi()
{ 
	Qi[0][0] = cos(t[1]) * cos(t[2]);
	Qi[0][1] = cos(t[1]) * sin(t[2]);
	Qi[0][2] = -sin(t[1]);

	Qi[1][0] = sin(t[0])*sin(t[1])*cos(t[2])-cos(t[0])*sin(t[2]);
	Qi[1][1] = sin(t[0])*sin(t[1])*sin(t[2])+cos(t[0])*cos(t[2]);
	Qi[1][2] = sin(t[0])*cos(t[1]);

	Qi[2][0] = cos(t[0])*sin(t[1])*cos(t[2])+sin(t[0])*sin(t[2]);
	Qi[2][1] = cos(t[0])*sin(t[0])*sin(t[2])-sin(t[0])*cos(t[2]);
	Qi[2][2] = cos(t[0])*cos(t[1]);
}

void qiu_draw( float *m, float da, float db )
{
	float f[3], f0, x0, y0, x1, y1, x2, y2;

	f[0] = R * sin(da) * cos(db);
	f[1] = R * sin(da) * sin(db);
	f[2] = R * cos(da);

  f0 = f[0]*Qi[0][2] + f[1]*Qi[1][2] + f[2]*Qi[2][2];
	
	if( f0 <= 0 )
		n=1;
  else
	{
		x0 = 120.0;
		y0 = 120.0;
		x2 = ( Qi[0][0]*f[0] + Qi[1][0]*f[1] + Qi[2][0]*f[2] ) + x0;
		y2 = ( Qi[0][1]*f[0] + Qi[1][1]*f[1] + Qi[2][1]*f[2] )*DIST + y0;
		if( n == 1 )
		{
			n = 2;
			x1 = x2;
			y1 = y2;
		}
		else
		{
			GUI_DrawLine( x1, y1, x2, y2 ); 
			x1 = x2;
			y1 = y2;
  	}
	}
}

void qiu( void )
{
	float ta, tb;
	char k;
	int i, p = 1;

	GUI_SetBkColor( GUI_BLACK );
	GUI_SetColor( GUI_GREEN );

	t[1] = 30 * T;
	t[2] = 10 * T;

	do
	{
		for( i=0; i<=361; i+=1 )
		{
			t[0] = i * T;
			s_fuzhi();
			GUI_Clear();

			for( tb=0.0; tb<PI; tb+=DT )
			{
				n = 1;

		        for( ta=0.0; ta<2.1*PI; ta+=DT )
		        	qiu_draw( Qi, ta, tb );
			}

			for( ta=0.0; ta<PI; ta+=DT )
			{
				n = 1;

				for( tb=0.0; tb<2.1*PI; tb+=DT )
					qiu_draw( Qi, ta, tb );
			}

			p = 1 - p;
		}

	}while( 1 );
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -