📄 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 + -