• 大小: 1.88MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-31
  • 语言: 其他
  • 标签:

资源简介

呵呵 我和同学一起做的~

资源截图

代码片段和文件信息

#include
#include
#include
#define A 0.5236    //设定theta角度为30度
#define D 0.005     //每个小格的边长
#define PI 3.1415926
class Ellipse
{
int number;
float centerX;            
float centerY;
float longaxes;
float shortaxes;
int angle;
float coefficient;            // 定义椭圆的中心、长轴、短轴、角度、折射系数
public:
int Getnumber() { return number;}
float GetcenterX() { return centerX;}
float GetcenterY() { return centerY;}
float Getshortaxes() { return shortaxes;}
float Getlongaxes() { return longaxes;}
int Getangle() { return angle*PI/180;}
float Getcoefficient() { return coefficient;}   
void GetProjection(float *pB);
    Ellipse(int Numberfloat CenterXfloat CenterY float Longaxesfloat Shortaxesint Anglefloat Coefficient)
{  
number=NumbercenterX=CenterXcenterY=CenterYlongaxes=Longaxes
shortaxes=Shortaxesangle=Anglecoefficient=Coefficient;
}                                   //定义一个椭圆的构造函数

};
void  Ellipse::GetProjection(float *pB)       //调用构造函数
{   int    e=400;                  //图像大小
float  pi2RhC1;              //采样的角度
    float *jj=new float[400];         //分配卷积结果值空间
    float N= Getnumber();
float X=GetcenterX();               //得到中心的X坐标
float Y=GetcenterY();               //得到中心的Y坐标
float BB=Getshortaxes();            //得到短轴
float AA=Getlongaxes();             //得到长轴
float AG=Getangle();                  //得到旋转角度
float C=Getcoefficient();           //得到折射系数              
float*ft=new float[400];            //分配投影函数数值空间

     for(int k=0;k<=e;k++)          //获得投影函数值
{
float gt=2*C*AA*BB*fabs(pow(AA2)*pow(cos(A-AG)2)
    +pow(BB2)*pow(sin(A-AG)2)-pow((k-X*cos(A)-Y*
    sin(A))2))/pow(AA2)*pow(cos(A-AG)2)+pow(BB2)*
        pow(sin(A-AG)2); 
    ft[k]=gt; 
}

      pi2= pow(PI2);                 //求PI的平方

for(int i=0j=-200;j<=200;i++j++) //卷积函数的分类离散形式与投影值相乘
{
if(j%2==0)   jj[i]=0;

else if(j==0)    jj[i]=10000*ft[i];         //计算1/(4*D*D)得10000

else   jj[i]=-1/(j*j*PI*PI*D*D)*ft[i];
}

for(int n=0;n<400;n++)        //反投影过程得像素值
{  
for(int j=0;j<400;j++)
{
C1=e/2-(e-1)*(cos(A)+sin(A))/2;//定义C1为此值 
                Rh=n*D*cos(A)+j*D*sin(A)+C1*D; //R轴上的垂足坐标
int I=Rh;//求Rh的整数部分
    float F=Rh-I;//得出小数部分
float X1Y1TPQ;
                      X1=(n+1-(e+1)/2)*D-X;     //新坐标的大小
      Y1=(j+1-(e+1)/2)*D-Y;
  P=AA*AA; Q=BB*BB;
      T=pow(X12)/P+pow(Y12)/Q;     
if(T>1)   pB[n+j*e]=0;            //判断坐标是否在椭圆内,不在时像素值归零
else pB[n+j*e]=(1-F)*jj[I]+F*jj[I+1];//坐标在椭圆的像素值大小
 
}
}

}
void main()                           //主函数
{   
float *pB=new float[160000];      //保存反投影数据
    float *pC=new float[160000];
for(int i=0;i<160000;i++)
{
pC[i]=0;
}

Ellipse Ellipse1(1000.920.69902);
Ellipse Ellipse2(20-0.01840.8740.662490-0.98);
Ellipse Ellipse3(300.220.310.1172-0.02);
Ellipse Ellipse4(40-0.220.410

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件    1214814  2007-12-19 19:52  图象.bmp

     文件        119  2007-12-19 19:58  说明.txt

     文件       5056  2007-12-19 19:56  卷积.cpp

     目录          0  2007-06-06 13:31  绘图

     文件      27004  2005-11-24 11:32  绘图\11.aps

     文件       1701  2005-11-24 11:46  绘图\11.clw

     文件       4165  2004-09-21 19:56  绘图\11.cpp

     文件       4471  2004-09-21 19:56  绘图\11.dsp

     文件        527  2004-09-21 19:56  绘图\11.dsw

     文件       1322  2004-09-21 19:56  绘图\11.h

     文件      91136  2005-11-24 11:46  绘图\11.ncb

     文件      53760  2005-11-24 11:46  绘图\11.opt

     文件        238  2004-09-21 19:56  绘图\11.plg

     文件      10160  2004-09-21 19:56  绘图\11.rc

     文件       1772  2004-09-21 19:56  绘图\11Doc.cpp

     文件       1445  2004-09-21 19:56  绘图\11Doc.h

     文件       2719  2004-09-21 19:56  绘图\11View.cpp

     文件       1853  2004-09-21 19:56  绘图\11View.h

     目录          0  2007-12-19 19:57  绘图\Debug

     文件     597153  2007-12-19 19:57  绘图\Debug\1.txt

     文件     118823  2004-09-21 19:56  绘图\Debug\11.exe

     文件     315928  2004-09-21 19:56  绘图\Debug\11.ilk

     文件      22672  2004-09-21 19:56  绘图\Debug\11.obj

     文件    5495540  2004-09-21 19:56  绘图\Debug\11.pch

     文件     336896  2004-09-21 19:56  绘图\Debug\11.pdb

     文件       5852  2004-09-21 19:56  绘图\Debug\11.res

     文件      14515  2004-09-21 19:56  绘图\Debug\11Doc.obj

     文件      20205  2004-09-21 19:56  绘图\Debug\11View.obj

     文件      22873  2004-09-21 19:56  绘图\Debug\MainFrm.obj

     文件     105373  2004-09-21 19:56  绘图\Debug\StdAfx.obj

............此处省略16个文件信息

评论

共有 条评论

相关资源