📄 main.cpp
字号:
#include <iostream.h>
#include <math.h>
#include <fstream.h>
#include <iomanip.h>
#define PI 3.14159265
struct Point
{
double x;
double y;
double z;
};
void main()
{
int i,j;
double a = 0.4035482123351997;
double b = 0.343278613;
double Hb = 0.93923362;
double sin18 = sin(PI/10);
double cos18 = cos(PI/10);
double sin36 = sin(PI/5);
double cos36 = cos(PI/5);
double C = (asin(a/2) + asin(b))*2;
double sinC = sin(C);
double cosC = cos(C);
Point pts[60];
Point pt5[5];
pts[0].x = 0;
pts[0].y = b;
pts[0].z = -Hb;
for(i=1; i<5; i++)
{
pts[i].x = pts[i-1].x*sin18 - pts[i-1].y*cos18;
pts[i].y = pts[i-1].x*cos18 + pts[i-1].y*sin18;
pts[i].z = pts[i-1].z;
}
//围绕Z轴逆时针旋转36度
for(i=0; i<5; i++)
{
pt5[i].x = -pts[i].x;
pt5[i].y = -pts[i].y;
pt5[i].z = pts[i].z;
}
//围绕X轴逆时针旋转C度
for(i=0; i<5; i++)
{
pts[i+5].x = pt5[i].x;
pts[i+5].y = pt5[i].y*cosC - pt5[i].z*sinC;
pts[i+5].z = pt5[i].y*sinC + pt5[i].z*cosC;
}
for(i=2; i<6; i++)
{
for(j=0; j<5; j++)
{
pts[5*i+j].x = pts[5*(i-1)+j].x*sin18 - pts[5*(i-1)+j].y*cos18;
pts[5*i+j].y = pts[5*(i-1)+j].x*cos18 + pts[5*(i-1)+j].y*sin18;
pts[5*i+j].z = pts[5*(i-1)+j].z;
}
}
for(i=0; i<30; i++)
{
pts[59-i].x = -pts[i].x;
pts[59-i].y = -pts[i].y;
pts[59-i].z = -pts[i].z;
}
ofstream fs("data.txt");
for(i=0; i<60; i++)
{
fs<<setw(10)<<pts[i].x<<",";
if((i+1)%5 == 0)
{
fs<<endl;
}
}
fs<<endl;
for(i=0; i<60; i++)
{
fs<<setw(10)<<pts[i].y<<",";
if((i+1)%5 == 0)
{
fs<<endl;
}
}
fs<<endl;
for(i=0; i<60; i++)
{
fs<<setw(10)<<pts[i].z<<",";
if((i+1)%5 == 0)
{
fs<<endl;
}
}
fs<<endl;
fs<<"football points:"<<"( x , y , z )"<<endl;
for(i = 0; i<60; i++)
{
fs<<i+1<<":"<<"("
<<setw(10)<<pts[i].x<<","
<<setw(10)<<pts[i].y<<","
<<setw(10)<<pts[i].z<<")"
<<endl;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -