directX彩色图形绘制实验实验三报告_第1页
directX彩色图形绘制实验实验三报告_第2页
directX彩色图形绘制实验实验三报告_第3页
directX彩色图形绘制实验实验三报告_第4页
directX彩色图形绘制实验实验三报告_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验三 DirectX彩色图形绘制实验实验报告项目1: DirectX彩色三角形渲染实验在例程ColorTriangle的基础上,完成以下步骤:1. 修改彩色顶点数据,实现三个不同的彩色三角形渲染。2. 修改三角形顶点的颜色值,使三个三角形分别为红、黄、兰三种不同的颜色。原代码图像更改左边三角型渲染模式得到的图像,将平面模式渲染三角形改为用 Gouraud模式渲染三角形Device-SetRenderState(D3DRS_SHADEMODE, D3DSHADE_FLAT);改为Device-SetRenderState(D3DRS_SHADEMODE, D3DSHADE_GOURAUD);改变顶点颜色ColorVertex* v;原代码语句Triangle-Lock(0, 0, (void*)&v, 0);v0 = ColorVertex(-1.0f, 0.0f, 2.0f, D3DCOLOR_XRGB(255, 0, 0);v1 = ColorVertex( 0.0f, 1.0f, 2.0f, D3DCOLOR_XRGB(0, 255, 0);v2 = ColorVertex( 1.0f, 0.0f, 2.0f, D3DCOLOR_XRGB( 0, 0, 255);Triangle-Unlock();将v1 = ColorVertex( 0.0f, 1.0f, 2.0f, D3DCOLOR_XRGB(0, 255, 0);改为v1 = ColorVertex( 0.0f, 1.0f, 2.0f, D3DCOLOR_XRGB(255 255, 0);得到三个顶点为红黄蓝的三角形项目2: DirectX彩色立方体渲染实验在例程Cub的基础上,完成以下步骤:a) 修改立方体顶点数据,将顶点数据格式从Vertex结构改为ColorVertex结构,顶点颜色都设为红色(D3DCOLOR_XRGB(255, 0, 0))。注意Device-CreateVertexBuffer()函数的参数设置,以及ColorVertex顶点数据的设置。b) 修改Display()函数中的Device-SetStreamSource()函数和Device-SetFVF()函数的参数设置,以及增加Device-SetRenderState(D3DRS_SHADEMODE, D3DSHADE_GOURAUD)的调用。实现彩色立方体的渲染。c) 列出彩色顶点数据的使用步骤,说明顶点数据结构的定义、缓冲区创建、顶点数据设置、缓冲区数据设置到渲染引擎,渲染状态设置为插值模式,渲染等各个步骤对应的语句。在例程Cub的基础上,完成以下步骤:d) 修改立方体顶点数据,将顶点数据格式从Vertex结构改为ColorVertex结构,顶点颜色都设为红色(D3DCOLOR_XRGB(255, 0, 0))。注意Device-CreateVertexBuffer()函数的参数设置,以及ColorVertex顶点数据的设置。e) 修改Display()函数中的Device-SetStreamSource()函数和Device-SetFVF()函数的参数设置,以及增加Device-SetRenderState(D3DRS_SHADEMODE,D3DSHADE_GOURAUD)的调用。实现彩色立方体的渲染。f) 列出彩色顶点数据的使用步骤,说明顶点数据结构的定义、缓冲区创建、顶点数据设置、缓冲区数据设置到渲染引擎,渲染状态设置为插值模式,渲染等各个步骤对应的语句。顶点数据结构的定义struct ColorVertexColorVertex()ColorVertex(float x, float y, float z,D3DCOLOR c)_x = x; _y = y; _z = z; _color = c;float _x, _y, _z;D3DCOLOR _color;static const DWORD FVF;const DWORD ColorVertex:FVF = D3DFVF_XYZ | D3DFVF_DIFFUSE;缓冲区创建Device-CreateVertexBuffer(8 * sizeof(ColorVertex), D3DUSAGE_WRITEONLY,ColorVertex:FVF,D3DPOOL_MANAGED,&VB,0);顶点数据设置ColorVertex* vertices;VB-Lock(0, 0, (void*)&vertices, 0);/ vertices of a unit cubevertices0 = ColorVertex(-1.0f, -1.0f, -1.0f, D3DCOLOR_XRGB(255, 0, 0);vertices1 = ColorVertex(-1.0f, 1.0f, -1.0f, D3DCOLOR_XRGB(255, 0, 0);vertices2 = ColorVertex( 1.0f, 1.0f, -1.0f, D3DCOLOR_XRGB(255, 0, 0);vertices3 = ColorVertex( 1.0f, -1.0f, -1.0f, D3DCOLOR_XRGB(255, 0, 0);vertices4 = ColorVertex(-1.0f, -1.0f, 1.0f, D3DCOLOR_XRGB(255, 0, 0);vertices5 = ColorVertex(-1.0f, 1.0f, 1.0f, D3DCOLOR_XRGB(255, 0, 0);vertices6 = ColorVertex( 1.0f, 1.0f, 1.0f, D3DCOLOR_XRGB(255, 0, 0);vertices7 = ColorVertex( 1.0f, -1.0f, 1.0f, D3DCOLOR_XRGB(255, 0, 0);VB-Unlock();缓冲区数据设置到渲染引擎,渲染状态设置为插值模式,渲染bool Display(float timeDelta)if( Device )/ spin the cube:/D3DXMATRIX Rx, Ry;/ rotate 45 degrees on x-axisD3DXMatrixRotationX(&Rx, 3.14f / 4.0f);/ incremement y-rotation angle each framestatic float y = 0.0f;D3DXMatrixRotationY(&Ry, y);y += timeDelta;/ reset angle to zero when angle reaches 2*PIif( y = 6.28f )y = 0.0f;/ combine x- and y-axis rotation transformations.D3DXMATRIX p = Rx * Ry;Device-SetTransform(D3DTS_WORLD, &p);/ draw the scene:/Device-Clear(0, 0, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, 0xffffffff, 1.0f, 0);Device-BeginScene();Device-SetStreamSource(0, VB, 0, sizeof(ColorVertex);Device-SetIndices(IB);Device-SetFVF(ColorVertex:FVF);/ Draw cube.Device-DrawIndexedPrimitive(D3DPT_TRIANGLELIST, 0, 0, 8, 0, 12);Device-SetRenderState(D3DRS_SHADEMODE,D3DSHADE_GOURAUD);Device-EndScene();Device-Present(0, 0, 0, 0);return true;项目3: 模型创建渲染实验在Cube程序的基础上,完成以下步骤:a) 创建立方体,茶壶,圆柱体,圆环,球体等5种内置模型;b) 将5个模型分别移动到不同的位置,按照不同的速度和方向进行旋转。c) 将5个模型分别用不同的材质渲染。d) 将5个模型分别进行不同比例的缩放。/ / File: cube.cpp/ / Author: Frank Luna (C) All Rights Reserved/ System: AMD Athlon 1800+ XP, 512 DDR, Geforce 3, Windows XP, MSVC+ 7.0 / Desc: Renders a spinning cube in wireframe mode. Demonstrates vertex and / index buffers, world and view transformations, render states and/ drawing commands./ /#include d3dUtility.h#include texcube.h/ Globals/IDirect3DDevice9* Device = 0; const int Width = 640;const int Height = 480;IDirect3DTexture9* Tex = 0;Cube* Box = 0;IDirect3DVertexBuffer9* VB = 0;IDirect3DIndexBuffer9* IB = 0;D3DXMATRIX WorldMatrix;ID3DXMesh* Objects5 = 0, 0, 0, 0,0;D3DMATERIAL9 Mtrls5;D3DXMATRIX Worlds5;D3DXMATRIX scales5;/ Classes and Structures/struct VertexVertex()Vertex(float x, float y, float z, D3DCOLOR c)_x = x; _y = y; _z = z;_color = c;float _x, _y, _z;D3DCOLOR _color;static const DWORD FVF;const DWORD Vertex:FVF = D3DFVF_XYZ | D3DFVF_DIFFUSE;/ Framework Functions/bool Setup()/ Create vertex and index buffers./D3DXCreateTeapot(Device, &Objects0, 0);D3DXMatrixTranslation(&Worlds0, 0.0f, 3.0f, 0.0f);Mtrls0 =d3d: RED_MTRL;D3DXMatrixScaling(&scales0, 1.5f, 1.5f, 1.5f);D3DXCreateSphere(Device, 1.0f, 20, 20, &Objects1, 0);D3DXMatrixTranslation(&Worlds1, 0.0f, -2.0f, 0.0f);Mtrls1 = d3d:BLUE_MTRL;D3DXMatrixScaling(&scales1, 0.5f, 0.5f, 0.5f);D3DXCreateTorus(Device, 0.5f, 1.0f, 20, 20, &Objects2, 0);D3DXMatrixTranslation(&Worlds2, -3.0f, 0.0f, 0.0f);Mtrls2 = d3d:GREEN_MTRL;D3DXMatrixScaling(&scales2, 0.3f, 0.3f, 0.3f);D3DXCreateCylinder(Device, 0.5f, 0.5f, 2.0f, 20, 20, &Objects3, 0);D3DXMatrixTranslation(&Worlds3, 3.0f, 0.0f, 0.0f);Mtrls3 = d3d:YELLOW_MTRL;D3DXMatrixScaling(&scales3, 1.2f, 1.2f, 1.2f);Device-CreateVertexBuffer(8 * sizeof(Vertex), D3DUSAGE_WRITEONLY,Vertex:FVF,D3DPOOL_MANAGED,&VB,0);Device-CreateIndexBuffer(36 * sizeof(WORD),D3DUSAGE_WRITEONLY,D3DFMT_INDEX16,D3DPOOL_MANAGED,&IB,0);/ Fill the buffers with the cube data./ define unique vertices:Vertex* vertices;VB-Lock(0, 0, (void*)&vertices, 0);/ vertices of a unit cubevertices0 = Vertex(-1.0f, -1.0f, -1.0f, D3DCOLOR_XRGB(255, 0, 100);vertices1 = Vertex(-1.0f, 1.0f, -1.0f, D3DCOLOR_XRGB(30, 255, 150);vertices2 = Vertex(1.0f, 1.0f, -1.0f, D3DCOLOR_XRGB(255, 199, 0);vertices3 = Vertex(1.0f, -1.0f, -1.0f, D3DCOLOR_XRGB(400, 200, 0);vertices4 = Vertex(-1.0f, -1.0f, 1.0f, D3DCOLOR_XRGB(255, 0, 100);vertices5 = Vertex(-1.0f, 1.0f, 1.0f, D3DCOLOR_XRGB(30, 255, 150);vertices6 = Vertex(1.0f, 1.0f, 1.0f, D3DCOLOR_XRGB(255, 199, 0);vertices7 = Vertex(1.0f, -1.0f, 1.0f, D3DCOLOR_XRGB(400, 200, 0);/vertices8 = Vertex( 2.0f, -1.0f, 1.0f, D3DCOLOR_XRGB(65, 211, 0 );VB-Unlock();/ define the triangles of the cube:WORD* indices = 0;IB-Lock(0, 0, (void*)&indices, 0);/ front sideindices0 = 0; indices1 = 1; indices2 = 2;indices3 = 0; indices4 = 2; indices5 = 3;/ back sideindices6 = 4; indices7 = 6; indices8 = 5;indices9 = 4; indices10 = 7; indices11 = 6;/ left sideindices12 = 4; indices13 = 5; indices14 = 1;indices15 = 4; indices16 = 1; indices17 = 0;/ right sideindices18 = 3; indices19 = 2; indices20 = 6;indices21 = 3; indices22 = 6; indices23 = 7;/ topindices24 = 1; indices25 = 5; indices26 = 6;indices27 = 1; indices28 = 6; indices29 = 2;/ bottomindices30 = 4; indices31 = 0; indices32 = 3;indices33 = 4; indices34 = 3; indices35 = 7;/indices36 = 6; indices37 = 7; indices38 = 8;IB-Unlock();Box = new Cube(Device);D3DXCreateTextureFromFile(Device,crate.jpg,&Tex);/ Position and aim the camera./D3DXVECTOR3 position(0.0f, 0.0f,5.0f);D3DXVECTOR3 target(0.0f, 0.0f, 0.0f);D3DXVECTOR3 up(0.0f, 1.0f, 0.0f); D3DXMATRIX V;D3DXMatrixLookAtLH(&V, &position, &target, &up); Device-SetTransform(D3DTS_VIEW, &V);/ Set the projection matrix./D3DXMATRIX proj;D3DXMatrixPerspectiveFovLH(&proj,D3DX_PI * 0.5f, / 90 - degree(float)Width / (float)Height,1.0f,1000.0f);Device-SetTransform(D3DTS_PROJECTION, &proj);D3DXVECTOR3 dir(1.0f, -0.0f, 0.25f);D3DXCOLOR c = d3d:WHITE;D3DLIGHT9 dirLight = d3d:InitDirectionalLight(&dir, &c);/ Set and Enable the light./Device-SetLight(0, &dirLight);Device-LightEnable(0, true);/ Switch to wireframe mode./ / Set Texture Filter States./Device-SetSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR);Device-SetSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR);Device-SetSamplerState(0, D3DSAMP_MIPFILTER, D3DTEXF_LINEAR);/ set alpha blending stuff/ use alpha channel in texture for alphaDevice-SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);Device-SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);/ set blending factors so that alpha component determines transparencyDevice-SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);Device-SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);/Device-SetRenderState(D3DRS_FILLMODE, D3DFILL_WIREFRAME);/Device-SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID);/Device-SetRenderState(D3DRS_LIGHTING, false);return true;void Cleanup()d3d:Release(VB);d3d:Release(IB);d3d:Release(Tex);d3d:Delete(Box);for(int i = 0; i 5; i+)d3d:Release(Objectsi);bool Display(float timeDelta)if( Device )/ spin the cube:/D3DXMATRIX Rx, Ry;/ rotate 45 degrees on x-axisD3DXMatrixRotationX(&Rx, 3.14f / 4.0f);/ incremement y-rotation angle each framestatic float y = 0.0f;D3DXMatrixRotationY(&Ry, y);y += timeDelta;/ reset angle to zero when angle reaches 2*PIif( y = 6.28f )y = 0.0f;/ combine x- and y-axis rotation transformations.D3DXMATRIX p = Rx * Ry;Device-SetTransform(D3DTS_WORLD, &p);/ draw the scene:/Device-Clear(0, 0, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, 0x00ffffff, 1.0f, 0);Device-BeginScene();Device-SetStreamSource(0, VB, 0, sizeof(Vertex);Device-SetIndices(IB);Device-SetFVF(Vertex:FVF);Device-SetRenderState(D3DRS_SHADEMODE, D3DSHADE_GOURAUD);/ Draw cube.Device-DrawIndexedPrimitive(D3DPT_TRIANGLELIST, 0, 0, 9, 0, 13);/*D3DXMATRIX s;D3DXMatrixScaling(&s,0.5f,0.5f,0.5f);D3DXMatrixTranslation(&WorldMatrix, -3.25f, 0.0f, 0.0f);D3DXMATRIX pp = p*s;pp = pp*WorldMatrix;Device-SetTransform(D3DTS_WORLD, &pp );Device-SetRenderState(D3DRS_SHADEMODE, D3DSHADE_FLAT);Device-DrawIndexedPrimitive(D3DPT_TRIANGLELIST, 0, 0, 9, 0, 13);*/Device-SetRenderState(D3DRS_ALPHABLENDENABLE, true);Box-draw(&Worlds4, (D3DMATERIAL9 *)&d3d:WHITE_MTRL, Tex);/Box-draw(0, 0, Tex);Device-SetRenderState(D3DRS_ALPHABLENDENABLE, false);D3DXMATRIX A4;static float y1 = 0.0f;D3DXMatrixRotationY(&Ry, y1);y1 += timeDelta*5;/ reset angle to zero when angle reaches 2*PIif( y1 = 6.28f )y1 = 0.0f;A0 = Rx * Ry;static float y2 = 0.0f;D3DXMatrixRotationY(&Ry, y2);y2 += timeDelta * 0.1;/ reset angle to zero when angle reaches 2*PIif (y2 = 6.28f)y2 = 0.0f;A1 = Rx * Ry;static float y3 = 0.0f;D3DXMatrixRotationY(&Ry, y3);y3 += timeDelta * 10;/ reset angle to zero when angle reaches 2*PIif (y3 = 6.28f)y3 = 0.0f;A2 = Rx * Ry;static float y4 = 0.0f;D3DXMatrixRotationY(&Ry, y4);y4 += timeDelta * 50;/ reset angle to zero when angle reaches 2*PIif (y4 = 6.28f)y4 = 0.0f;A3 = Rx * Ry;for(int i = 0; i SetMaterial(&Mtrlsi);D3DXMATRIX pp = p*scalesi;pp = pp*Worldsi;Device-SetTransform(D3DTS_WORLD, &pp);Objectsi-DrawSubset(0);Device-EndScene();Device-Present(0, 0, 0, 0);return true;/ WndProc/LRESULT CALLBACK d3d:WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)switch( msg )case WM_DESTROY:PostQuitMessage(0);break;case WM_KEYDOWN:if( wParam = VK_ESCAPE ):DestroyWindow(hwnd);break;return :DefWindowProc(hwnd, msg, wParam, lParam);/ WinMain/int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE prevInstance, PSTR cmdLine, int showCmd)if(!d3d:InitD3D(hinstance,Width, Height, true, D3DDEVTYPE_HAL, &Device):MessageBox(0, InitD3D() - FAILED, 0, 0);return 0;if(!Setup()/ / File: cube.cpp/ / Author: Frank Luna (C) All Rights Reserved/ System: AMD Athlon 1800+ XP, 512 DDR, Geforce 3, Windows XP, MSVC+ 7.0 / Desc: Renders a spinning cube in wireframe mode. Demonstrates vertex and / index buffers, world and view transformations, render states and/ drawing commands./ /#include d3dUtility.h#include texcube.h/ Globals/IDirect3DDevice9* Device = 0; const int Width = 640;const int Height = 480;IDirect3DTexture9* Tex = 0;Cube* Box = 0;IDirect3DVertexBuffer9* VB = 0;IDirect3DIndexBuffer9* IB = 0;D3DXMATRIX WorldMatrix;ID3DXMesh* Objects5 = 0, 0, 0, 0,0;D3DMATERIAL9 Mtrls5;D3DXMATRIX Worlds5;D3DXMATRIX scales5;/ Classes and Structures/struct VertexVertex()Vertex(float x, float y, float z, D3DCOLOR c)_x = x; _y = y; _z = z;_color = c;float _x, _y, _z;D3DCOLOR _color;static const DWORD FVF;const DWORD Vertex:FVF = D3DFVF_XYZ | D3DFVF_DIFFUSE;/ Framework Functions/bool Setup()/ Create vertex and index buffers./D3DXCreateTeapot(Device, &Objects0, 0);D3DXMatrixTranslation(&Worlds0, 0.0f, 3.0f, 0.0f);Mtrls0 =d3d: RED_MTRL;D3DXMatrixScaling(&scales0, 1.5f, 1.5f, 1.5f);D3DXCreateSphere(Device, 1.0f, 20, 20, &Objects1, 0);D3DXMatrixTranslation(&Worlds1, 0.0f, -2.0f, 0.0f);Mtrls1 = d3d:BLUE_MTRL;D3DXMatrixScaling(&scales1, 0.5f, 0.5f, 0.5f);D3DXCreateTorus(Device, 0.5f, 1.0f, 20, 20, &Objects2, 0);D3DXMatrixTranslation(&Worlds2, -3.0f, 0.0f, 0.0f);Mtrls2 = d3d:GREEN_MTRL;D3DXMatrixScaling(&scales2, 0.3f, 0.3f, 0.3f);D3DXCreateCylinder(Device, 0.5f, 0.5f, 2.0f, 20, 20, &Objects3, 0);D3DXMatrixTranslation(&Worlds3, 3.0f, 0.0f, 0.0f);Mtrls3 = d3d:YELLOW_MTRL;D3DXMatrixScaling(&scales3, 1.2f, 1.2f, 1.2f);Device-CreateVertexBuffer(8 * sizeof(Vertex), D3DUSAGE_WRITEONLY,Vertex:FVF,D3DPOOL_MANAGED,&VB,0);Device-CreateIndexBuffer(36 * sizeof(WORD),D3DUSAGE_WRITEONLY,D3DFMT_INDEX16,D3DPOOL_MANAGED,&IB,0);/ Fill the buffers with the cube data./ define unique vertices:Vertex* vertices;VB-Lock(0, 0, (void*)&vertices, 0);/ vertices of a unit cubevertices0 = Vertex(-1.0f, -1.0f, -1.0f, D3DCOLOR_XRGB(255, 0, 100);vertices1 = Vertex(-1.0f, 1.0f, -1.0f, D3DCOLOR_XRGB(30, 255, 150);vertices2 = Vertex(1.0f, 1.0f, -1.0f, D3DCOLOR_XRGB(255, 199, 0);vertices3 = Vertex(1.0f, -1.0f, -1.0f, D3DCOLOR_XRGB(400, 200, 0);vertices4 = Vertex(-1.0f, -1.0f, 1.0f, D3DCOLOR_XRGB(255, 0, 100);vertices5 = Vertex(-1.0f, 1.0f, 1.0f, D3DCOLOR_XRGB(30, 255, 150);vertices6 = Vertex(1.0f, 1.0f, 1.0f, D3DCOLOR_XRGB(255, 199, 0);vertices7 = Vertex(1.0f, -1.0f, 1.0f, D3DCOLOR_XRGB(400, 200, 0);/vertices8 = Vertex( 2.0f, -1.0f, 1.0f, D3DCOLOR_XRGB(65, 211, 0 );VB-Unlock();/ define the triangles of the cube:WORD* indices = 0;IB-Lock(0, 0, (void*)&indices, 0);/ front sideindices0 = 0; indices1 = 1; indices2 = 2;indices3 = 0; indices4 = 2; indices5 = 3;/ back sideindices6 = 4; indices7 = 6; indices8 = 5;indices9 = 4; indices10 = 7; indices11 = 6;/ left sideindices12 = 4; indices13 = 5; indices14 = 1;indices15 = 4; indices16 = 1; indices17 = 0;/ right sideindices18 = 3; indices19 = 2; indices20 = 6;indices21 = 3; indices22 = 6; indices23 = 7;/ topindices24 = 1; indices25 = 5; indices26 = 6;indices27 = 1; indices28 = 6; indices29 = 2;/ bottomindices30 = 4; indices31 = 0; indices32 = 3;indices33 = 4; indices34 = 3; indices35 = 7;/indices36 = 6; indices37 = 7; indices38 = 8;IB-Unlock();Box = new Cube(Device);D3DXCreateTextureFromFile(Device,crate.jpg,&Tex);/ Position and aim the camera./D3DXVECTOR3 position(0.0f, 0.0f,5.0f);D3DXVECTOR3 target(0.0f, 0.0f, 0.0f);D3DXVECTOR3 up(0.0f, 1.0f, 0.0f); D3DXMATRIX V;D3DXMatrixLookAtLH(&V, &p

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论