资源简介
完整的教学用3D引擎,讲到到大多数常用的技术.是这本书的随书源码
代码片段和文件信息
//
// The Computer Image
//
// This file implements a Fast Fourier Transform of a 1D function
//
#include
#include “../fft.h“
#define SWAP(ab) tempr=(a);(a)=(b);(b)=tempr
void four1(float *dataint nnint isign)
//
// Replaces data by its discrete Fourier transform if isign is input as 1;
// or replaces data by nn times its inverse discrete Fourier transform if
// isign is input as -1. data is a complex array of length nn input as a
// real array data[1..2*nn]. nn must be an integer power of 2.
//
{
int nmmaxmjistepi;
double wtempwrwprwpiwitheta;
float temprtempi;
n=nn<<1;
j=1;
for( i=1;i {
if (j>i)
{
SWAP(data[j]data[i]);
SWAP(data[j+1]data[i+1]);
}
m=n>>1;
while( m>=2 && j>m )
{
j-=m;
m>>=1;
}
j+=m;
}
mmax=2;
while( n>mmax )
{
istep=mmax<<1;
theta=6.28318530717959/(isign*mmax);
wtemp=sin(0.5*theta);
wpr=-2.0*wtemp*wtemp;
wpi=sin(theta);
wr=1.0;
wi=0.0;
for( m=1;m {
for( i=m;i<=n;i+=istep )
{
j=i+mmax;
tempr=wr*data[j]-wi*data[j+1];
tempi=wr*data[j+1]+wi*data[j];
data[j]=data[i]-tempr;
data[j+1]=data[i+1]-tempi;
data[i]+=tempr;
data[i+1]+=tempi;
}
wr=(wtemp=wr)*wpr-wi*wpi+wr;
wi=wi*wpr+wtemp*wpi+wi;
}
mmax=istep;
}
}
void twofft(float *data1float *data2float *fft1float *fft2int n)
//
// Given two real input arrays data[1..n] and data2[1..n] this routine
// calls four1 and returns two complex output arrays fft1 and fft2
// each of complex length n (real dimensions of [1..2n]) which contain
// the discrete Fourier transforms of the respective datas. n must be
// a integer power of two.
//
{
int nn3nn2jjj;
float repremaipaim;
nn3=1+(nn2=2+n+n);
for( j=1jj=2;j<=n;j++jj+=2 )
{
fft1[jj-1]=data1[j];
fft1[jj]=data2[j];
}
four1(fft1n1);
fft2[1]=fft1[2];
fft1[2]=fft2[2]=0.0;
for( j=3;j<=n+1;j+=2 )
{
rep=0.5*(fft1[j]+fft1[nn2-j]);
rem=0.5*(fft1[j]-fft1[nn2-j]);
aip=0.5*(fft1[j+1]+fft1[nn3-j]);
aim=0.5*(fft1[j+1]-fft1[nn3-j]);
fft1[j]=rep;
fft1[j+1]=aim;
fft1[nn2-j]=rep;
fft1[nn3-j]=-aim;
fft2[j]=aip;
fft2[j+1]=-rem;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 352256 2002-10-01 04:47 Fly3D2.0\autorun.exe
文件 2998 1999-09-22 15:41 Fly3D2.0\autorun.ico
文件 47 1999-09-23 04:21 Fly3D2.0\autorun.inf
文件 49 2000-08-28 19:13 Fly3D2.0\Fly3D.url
文件 24064 2002-09-17 23:34 Fly3D2.0\readme.doc
文件 36864 2002-03-13 23:13 Fly3D2.0\sse_code.doc
文件 10130 1994-05-09 00:23 Fly3D2.0\wfft1d\EQANLIZE.CPP
文件 13843 2002-09-16 22:48 Fly3D2.0\wfft1d\WFFT1D.CPP
文件 221 1997-12-23 20:12 Fly3D2.0\wfft1d\WFFT1D.DEF
文件 89600 1998-01-08 21:43 Fly3D2.0\wfft1d\WFFT1D.EXE
文件 26346 1998-01-08 21:43 Fly3D2.0\wfft1d\WFFT1D.IDE
文件 77 1995-10-12 00:25 Fly3D2.0\wfft1d\WFFT1D.INI
文件 5996 1998-01-08 21:42 Fly3D2.0\wfft1d\WFFT1D.RC
文件 10101 1998-01-05 19:16 Fly3D2.0\wfft1d\fft.cpp
文件 279 1994-05-05 23:00 Fly3D2.0\wfft1d\fft.h
文件 59688 1997-12-18 21:03 Fly3D2.0\wfft1d\fpobtn.dll
文件 26344204 2002-10-04 03:00 Fly3D2.0\setup\Fly3D2_full.exe
----------- --------- ---------- ----- ----
26976763 卷 1 17
评论
共有 条评论