?? cad.cpp
字號:
#include <stdlib.h>
#include <time.h>
#include <fstream.h>
#include <math.h>
class Dpoint
{
public:
int x;
int y;
int z;
double u;
double ru;
};
void Sort(Dpoint a[],int p,int q) //快速排序
{
Dpoint REC;
int i,j;
i=p;
j=q;
REC=a[i];
do
{
while((a[j].x>REC.x)&&(j>i))
j--;
if(i<j)
{
a[i]=a[j];
i++;
}
while((a[i].x<REC.x)&&(j>i))
i++;
if(i<j)
{
a[j]=a[i];
j--;
}
}while(i!=j);
a[i]=REC;
if(p<i-1)
Sort(a,p,j-1);
else if(j+1<q)
Sort(a,j+1,q);
}
void main()
{
int i;
double x,y,z,d;
Dpoint a[1001];
srand((unsigned)time(NULL));
for(i=0;i<=1000;i++) //隨機生成1001個數據點
{
a[i].x=rand();
a[i].y=rand();
a[i].z=rand();
}
Sort(a,0,1000);
a[0].u=0;
for(i=1;i<=1000;i++) //積累弦長參數化
{
x=(a[i].x-a[i-1].x)*(a[i].x-a[i-1].x);
y=(a[i].y-a[i-1].y)*(a[i].y-a[i-1].y);
z=(a[i].z-a[i-1].z)*(a[i].z-a[i-1].z);
d=sqrt(x+y+z);
a[i].u=d+a[i-1].u;
}
for(i=0;i<=1000;i++) //規范化
{
a[i].ru=a[i].u/a[1000].u;
}
ofstream out("rand.txt"); //輸出結果到文件rand.txt
for(i=0;i<=1000;i++)
out<<" "<<i<<" "<<a[i].x<<" "<<a[i].y<<" "<<a[i].z<<";"<<a[i].u<<" "<<a[i].ru<<"\n";
out.close();
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -