/************************************************************************
*									*
*	点の回転テスト用データ作成					*
*									*
************************************************************************/

#include <math.h>
#include <stdio.h>

#define	unchar	unsigned char
#define	unshort	unsigned short

#define	PI	3.1415927
#define	R	64

FILE *fp;

main()
{

	/****** 変数宣言 ******/

	double	Z_angle, XY_angle;
	double	X_point, Y_point, Z_point;
	double	i, j;

	/****** 作成データ書き込みファイルＯＰＥＮ ******/

	if( !( fp = fopen( "angl.dat", "w" ) ) ){
		printf( "can't open '%s' !!\n" );
		exit(1);
	}


	/****** 点の回転テスト用データ作成 ******/

	fprintf( fp, ";************************************************************************\n" );
	fprintf( fp, ";*\t\trotation point data\t\t\t\t\t*\n" );	
	fprintf( fp, ";************************************************************************\n" );
	fprintf( fp, "ROTPOINT\tEQU\t$\n");
	fprintf( fp, "\t\t\t Z  Y  X\n");

	for( i=0; i<180; i+=45 ){
		Z_angle = i * ( PI / 180 );

		for( j=0; j<360; j+=45 ){
			XY_angle = j * ( PI / 180 );

			X_point = R * cos( XY_angle );
			Z_point = R * sin( XY_angle );

			Y_point = X_point * sin( Z_angle );
			X_point = X_point * cos( Z_angle );

			fprintf( fp, "\t\tHEX\t" );
			fprintf( fp,  "%02X", (unchar)Z_point );
			fprintf( fp, ",%02X", (unchar)Y_point );
			fprintf( fp, ",%02X", (unchar)X_point );
			fprintf( fp, "\t;[%d]\n", (unshort)j );

		}

		fprintf( fp, ";\n" );

	}

	fprintf( fp, ";\n" );


	/****** 作成データ書き込みファイルＣＬＯＳＥ ******/
	fclose( fp );

}

