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

📄 radar.cpp

📁 将雷达数据转换为坐标数据 文件的输入与输出
💻 CPP
字号:
/********************************************************************/
/* 文本文件的使用,构造函数打开文件,把源文件拷贝到目的文件中		*/
/* 并能对文件中的数据进行简单操作									*/	
/********************************************************************/
#include <iostream.h>
#include <fstream.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>

double MyMethod()
{
	return 3.1415926/180;
}
double MyMethodX(int i,double S)
{
	double d=30;
	double L=29,R=29;
	double a1,X1,Y1,a,X0,Y0;
	double Xa,Xb,r,Xc,Xd,Yc,Yd,A,B,X;
	a1=MyMethod()*i;
	X1=S*cos(a1);
	Y1=S*sin(a1);
	Xa=-d/2;
	Xb=d/2;
	if(L==R){
		a=0;
		X0=0;
		X=X1+X0;
	}
	else if(L>R){
		a=(L-R)/d;
		r=R/a;
		Xc=Xb+r-(r+d)*cos(a);
		Xd=Xb+r-r*cos(a);
		Yc=(r+d)*sin(a);
		Yd=r*sin(a);
		X0=(Xc+Xd)/2,Y0=(Yc+Yd)/2;
		A=-X0*cos(-a)+Y0*sin(-a);	
		B=-X0*sin(-a)-Y0*cos(-a);
		X=(Y1+(X1-A)/tan(-a)-B)/(sin(-a)+cos(-a)/tan(-a));
	}
	else if(L<R){
		a=(R-L)/d;
		r=L/a;
		Xc=Xa-r+r*cos(a);
		Xd=Xa-r+(r+d)*cos(a);
		Yc=r*sin(a);
		Yd=(r+d)*sin(a);
		X0=(Xc+Xd)/2,Y0=(Yc+Yd)/2;
		A=-X0*cos(-a)+Y0*sin(-a);	
		B=-X0*sin(-a)-Y0*cos(-a);
		X=(Y1+(X1-A)/tan(-a)-B)/(sin(-a)+cos(-a)/tan(-a));
	}
	X=int(X+0.5);
	return X;
}
double MyMethodY(int i,double S)
{
	double d=30;
	double L=29,R=29;
	double a1,X1,Y1,a,X0,Y0;
	double Xa,Xb,r,Xc,Xd,Yc,Yd,A,B,X,Y;
	a1=MyMethod()*i;
	X1=S*cos(a1);
	Y1=S*sin(a1);
	Xa=-d/2;
	Xb=d/2;
	if(L==R){
		a=0;
		Y0=L;
		Y=Y1+Y0;
	}
	else if(L>R){
		a=(L-R)/d;
		r=R/a;
		Xc=Xb+r-(r+d)*cos(a);
		Xd=Xb+r-r*cos(a);
		Yc=(r+d)*sin(a);
		Yd=r*sin(a);
		X0=(Xc+Xd)/2,Y0=(Yc+Yd)/2;
		A=-X0*cos(-a)+Y0*sin(-a);	
		B=-X0*sin(-a)-Y0*cos(-a);
		X=(Y1+(X1-A)/tan(-a)-B)/(sin(-a)+cos(-a)/tan(-a));
		Y=X/tan(-a)-(X1-A)/sin(-a);
	}
	else if(L<R){
		a=(R-L)/d;
		r=L/a;
		Xc=Xa-r+r*cos(a);
		Xd=Xa-r+(r+d)*cos(a);
		Yc=r*sin(a);
		Yd=(r+d)*sin(a);
		X0=(Xc+Xd)/2,Y0=(Yc+Yd)/2;
		A=-X0*cos(-a)+Y0*sin(-a);	
		B=-X0*sin(-a)-Y0*cos(-a);
		X=(Y1+(X1-A)/tan(-a)-B)/(sin(-a)+cos(-a)/tan(-a));
		Y=X/tan(-a)-(X1-A)/sin(-a);
	}
	Y=int(Y+0.5);
	return Y;
}

void main(){
	char filename1[256],filename2[256];
	cout<<"输入源文件名: ";
	cin>>filename1;
	cout<<"输出目的文件名:";
	cin>>filename2;
	ifstream infile(filename1,ios::in|ios::nocreate);	//以文本文件的方式打开源文件
	ofstream outfile(filename2);						//以文本文件的方式打开目的文件
	if(!infile){
		cout<<"不能打开输入文件:"<<filename1<<'\n';
		exit(0);
	}
	if(!outfile){
		cout<<"不能打开目的文件:"<<filename2<<'\n';
		exit(1);
	}
	float sum=0,temp;
	int i=0,count=0,a,b;
	double S;
	while(infile>>temp){				//依次读一个实数
		sum+=temp;						//累加
		S=temp;
		a=MyMethodX(i,S);					//每个数加2运算
		b=MyMethodY(i,S);
		i++;
		i%=182;
		outfile<<"("<<a<<","<<b<<")"<<'\t';			//将字符写到目的文件中
//		if(i==0)outfile<<'\n';
		count++;
	}
	cout<<"平均值="<<sum/count<<'\t'<<"count="<<S<<'\n';
	infile.close();
	outfile.close();
}

⌨️ 快捷键说明

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