基于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 spherepublic: 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 MAX20BOOL 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') %画出各点上电场的大小和方向运动源是什么牌子?
在福州吃过,挺闽南风味肉松,当时是说青运会猪肉做的,口感不错,肉感很足