运动源代码,基于matlab运动模糊图像处理的源代码

时尚网,时尚女装,时尚杂志

基于matlab运动模糊图像处理的源代码

PSF = fspecial('motion',len,ang); %建立扩散子,其中len是模糊长度,ang是模糊角度

img2=deconvlucy(img,PSF,n); %用lucy-richardson方法复原图像,其中img是运动模糊图像,PSF是扩散子,n是迭代次数,img2是复原图像

求用C语言模拟简单台球运动的源代码,不需要图形化界面

这源代码应该有个桌面类(Table),球类(Sphere),游戏类等等。我用C++

#pragma once (Table.h)

#endif // _MSC_VER > 1000

#include "Base.h"

#define MESH_D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ|D3DFVF_NORMAL|D3DFVF_TEX1)

class CTable:public CBase

{

public:

DWORD Render();

CTable(LPDIRECT3DDEVICE8 pD3DDevice,LPSTR pFilename);

virtual ~CTable();

LPD3DXMESH GetMeshTablePointer();

private:

void TransformTable();

LPDIRECT3DDEVICE8 m_pD3DDevice;

DWORD m_dwNumMaterials;

LPD3DXMESH m_pMeshTable;

D3DMATERIAL8 *m_pMeshTableMaterials;

LPDIRECT3DTEXTURE8 *m_pMeshTableTextures;

};#endif

#include "Table.h" (Table.cpp)

CTable::CTable(LPDIRECT3DDEVICE8 pD3DDevice,LPSTR pFilename)

{

LPD3DXBUFFER pMaterialsBuffer=NULL;

LPD3DXMESH pMeshTable=NULL;

m_pD3DDevice=pD3DDevice;

if(FAILED(D3DXLoadMeshFromX(pFilename,D3DXMESH_MANAGED,m_pD3DDevice,NULL,

&pMaterialsBuffer,&m_dwNumMaterials,&pMeshTable)))

{

m_pMeshTable=NULL;

m_pMeshTableMaterials=NULL;

m_pMeshTableTextures=NULL;

LogError("<li>Table Mesh '%s' failed to load",pFilename);

return;

}

D3DXMATERIAL *matMaterials=(D3DXMATERIAL*)pMaterialsBuffer->GetBufferPointer();

//Create two arrays. One to hold the materials and one to hold the textures

m_pMeshTableMaterials=new D3DMATERIAL8[m_dwNumMaterials];

m_pMeshTableTextures=new LPDIRECT3DTEXTURE8[m_dwNumMaterials];

for(DWORD i=0;i<m_dwNumMaterials;i++)

{

//Copy the material

m_pMeshTableMaterials[i]=matMaterials[i].MatD3D;

//Set the ambient color for the material(D3DX does not do this)

m_pMeshTableMaterials[i].Ambient=m_pMeshTableMaterials[i].Diffuse;

D3DCOLORVALUE rgbaSpecular={0.0f,0.0f,0.0f,0.0f};

m_pMeshTableMaterials[i].Specular=rgbaSpecular;

m_pMeshTableMaterials[i].Power=50.0f;

//Create the texture

char buffer[255];

sprintf(buffer,"textures/%s",matMaterials[i].pTextureFilename);

if(FAILED(D3DXCreateTextureFromFile(m_pD3DDevice,

buffer, &m_pMeshTableTextures[i])))

{

m_pMeshTableTextures[i]=NULL;

}

}

//finished with the material buffer,so release it

SafeRelease(pMaterialsBuffer);

//Make sure that the normals are setup for mesh

pMeshTable->CloneMeshFVF(D3DXMESH_MANAGED,MESH_D3DFVF_CUSTOMVERTEX,m_pD3DDevice,&m_pMeshTable);

SafeRelease(pMeshTable);

// D3DXComputeNormals(m_pMesh);

LogInfo("<li>Mesh '%s' loaded OK",pFilename);

}

CTable::~CTable()

{

SafeDelete(m_pMeshTableMaterials);

if(m_pMeshTableTextures != NULL)

{

for(DWORD i=0;i<m_dwNumMaterials;i++)

{

if(m_pMeshTableTextures[i])

SafeRelease(m_pMeshTableTextures[i]);

}

}

SafeDelete(m_pMeshTableTextures);

SafeRelease(m_pMeshTable);

LogInfo("<li>Table Mesh destroyed OK");

}

DWORD CTable::Render()

{

TransformTable();

if(m_pMeshTable!=NULL)

{

for(DWORD i=0;i<m_dwNumMaterials;i++)

{

m_pD3DDevice->SetMaterial(&m_pMeshTableMaterials[i]);

m_pD3DDevice->SetTexture(0,m_pMeshTableTextures[i]);

m_pMeshTable->DrawSubset(i);

}

return m_pMeshTable->GetNumFaces();

}

else

return 0;

}

LPD3DXMESH CTable::GetMeshTablePointer()

{

return m_pMeshTable;

}

void CTable::TransformTable()

{

D3DXMATRIX matWorld;

D3DXMatrixTranslation(&matWorld,0,0,0);

m_pD3DDevice->SetTransform(D3DTS_WORLD,&matWorld);

}

(Sphere.h)

#if !defined (AFX_SPHERE_H__FC705F3B_568E_4973_B608_B8F7700D9ECE__INCLUDED_)

#define AFX_SPHERE_H__FC705F3B_568E_4973_B608_B8F7700D9ECE__INCLUDED_

#if _MSC_VER > 1000

#pragma once

#endif // _MSC_VER > 1000

#include "Base.h"

#define SPHERE_D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ|D3DFVF_NORMAL|D3DFVF_TEX1)

class CSphere:public CBase

{

private:

struct SPHERE_CUSTOMVERTEX

{

float x,y,z; //Position of vertex in 3D space

float nx,ny,nz; //Lighting Normal

float tu,tv; //Texture coordinates

};

struct SPHERE_STATE

{

D3DXVECTOR3 sVector; //Position of Centigram in 3D space

D3DXVECTOR3 vVector; //Direction of Velocity in 3D space

float v; //Speed of Sphere

};

SPHERE_STATE *m_pSphereState;

D3DXVECTOR3 m_vecSavePosition; //Save sphere position for collision bar

D3DXVECTOR3 m_vecSavePosition2; //Save sphere position for collision sphere

public:

BOOL SetMaterial(D3DCOLORVALUE rgbaDiffuse,D3DCOLORVALUE rgbaAmbient,

D3DCOLORVALUE rgbaSpecular,D3DCOLORVALUE rgbaEmissive,float rPower);

BOOL SetTexture(const char* szTextureFilePath);

DWORD Render();

CSphere(LPDIRECT3DDEVICE8 pD3DDevice,int iRings=20,int iSegments=20);

void MoveSphere();

void MoveSphereForUser(float x,float z);

virtual ~CSphere();

inline void SetSpherePosition(float x,float y,float z)

{

m_pSphereState->sVector.x=x;

m_pSphereState->sVector.y=y;

m_pSphereState->sVector.z=z;

};

inline void GetSpherePosition(D3DXVECTOR3 &vecSpherePos)

{

vecSpherePos=m_pSphereState->sVector;

};

inline void GetSavedSpherePosition(D3DXVECTOR3 &vecSavedSpherePos)

{

vecSavedSpherePos=m_vecSavePosition;

};

inline void GetSavedSpherePosition2(D3DXVECTOR3 &vecSavedSpherePos)

{

vecSavedSpherePos=m_vecSavePosition2;

};

inline void SaveSpherePosition()

{

m_vecSavePosition=m_pSphereState->sVector;

};

inline void SaveSpherePosition2()

{

m_vecSavePosition2=m_pSphereState->sVector;

};

inline void ContradictoryZv()

{

m_pSphereState->vVector.z=-m_pSphereState->vVector.z;

};

inline void ContradictoryXv()

{

m_pSphereState->vVector.x=-m_pSphereState->vVector.x;

};

void MirrorVAoubtAxis(D3DXVECTOR3 &n);

inline void ReduceSphereVelocity(float percent)

{

m_pSphereState->v=m_pSphereState->v*percent;

};

inline float CheckSphereEnergy()

{

return m_pSphereState->v;

};

inline void SetSphereVelocityDir(const D3DXVECTOR3 &vDir)

{

m_pSphereState->vVector=vDir;

};

inline void SetSphereVelocity(const float &velocity)

{

m_pSphereState->v=velocity;

};

inline void GetSphereVelocityDir(D3DXVECTOR3 &vDir)

{

vDir=m_pSphereState->vVector;

};

inline float GetSphereVelocity()

{

return m_pSphereState->v;

};

inline void SetSphereStateToFalse()

{

m_bSphereInUse=FALSE;

};

inline void SetSphereStateToTrue()

{

m_bSphereInUse=TRUE;

};

inline BOOL GetSphereState()

{

return m_bSphereInUse;

};

void SetSphereVelocityAt_Y_NegativeAxis();

inline float GetSpherePosAt_Y_Axis()

{

return m_pSphereState->sVector.y;

};

private:

BOOL CreateIndexBuffer();

BOOL UpdateVertices();

BOOL CreateVertexBuffer();

void TransformSphere();

void TransformSphereForUser();

void UpdateSpherePosition();

void FrictionReduseVelocity();

LPDIRECT3DDEVICE8 m_pD3DDevice;

LPDIRECT3DVERTEXBUFFER8 m_pVertexBuffer;

LPDIRECT3DTEXTURE8 m_pTexture;

D3DMATERIAL8 m_matMaterial;

LPDIRECT3DINDEXBUFFER8 m_pIndexBuffer;

int m_iRings;

int m_iSegments;

float m_fTotalDis;

D3DXVECTOR3 m_vecSphereRotationAxis;

BOOL m_bSphereInUse;

DWORD m_dwNumOfVertices;

DWORD m_dwNumOfIndices;

DWORD m_dwNumOfPolygons;

};#endif

求VC6.0 C++小球反弹运动源代码~

楼主你好 代码比较长

我先给个大致的主函数和一些宏定义吧:

#define NONTYPE void

#define WHITE0

#define RED1

#define GREEN2

#define BLUE3

#define MAX20

BOOL EllipseRect(HDC hdc,PRECT rect)//画圆

{

return Ellipse(hdc, rect->left, rect->top, rect->right, rect->bottom);

}

NONTYPE MoveToRight(HDC hdc, PRECT rect)//右移圆球

{

FillRect(hdc, rect, GetStockObject(WHITE_BRUSH));

rect->left+= 4;

rect->right+= 4;

EllipseRect(hdc, rect);

}

NONTYPE MoveToLeft(HDC hdc, PRECT rect)//左移圆球

{

FillRect(hdc, rect, GetStockObject(WHITE_BRUSH));

rect->left-= 4;

rect->right-= 4;

EllipseRect(hdc, rect);

}

BOOL IsFailed(RECT rect)//判断是否失败

{

int i = cxClient / 2;

int up = cyClient / 2 - 150;

int down = cyClient /2 - 50;

if(i >= rect.left && i <= rect.right)

{

bAddScore = TRUE;

if((rect.top <= down && rect.top >= up) && (rect.bottom <= down && rect.bottom >= up))

{

return FALSE;

}

return TRUE;

}

return FALSE;

}

完整的代码已发 注意查收就是了

希望能帮助你哈

求一用MATLAB画的电子在磁场中运动轨迹源代码?

%等量异号点电荷电场中电势分布

[x,y]=meshgrid(-2:0.1:2,-2:0.1:2);

%以0.1为步长建立平面数据网格

z=1./sqrt((x-1).^2+y.^2+0.01)... %写出电势表达式

-1./sqrt((x+1).^2+y.^2+0.01);

[px,py]=gradient(z);

%求电势在x,y 方向的梯度即电场强度

contour(x,y,z,[-12,-8,-5,-3,-1,... %画出等势线

-0.5,-0.1,0.1,0.5,1,3,5,8,12])

hold on %作图控制

quiver(x,y,px,py,'k') %画出各点上电场的大小和方向

运动源是什么牌子?

在福州吃过,挺闽南风味肉松,当时是说青运会猪肉做的,口感不错,肉感很足

>>>>全文在线阅读<<<<

相关阅读