南昌大学计算机图形学实验报告_第1页
南昌大学计算机图形学实验报告_第2页
南昌大学计算机图形学实验报告_第3页
南昌大学计算机图形学实验报告_第4页
南昌大学计算机图形学实验报告_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

第第页南昌大学计算机图形学实验报告

实验报告

试验课程:计算机图形学同学姓名:涂汉江学号:专业班级:数媒101班

2022年12月16号

目次

试验1绘制直线和圆……………….1

试验2种子填充算法……………….3

试验3线条的剪裁………………….6

试验4B样条曲线绘制……………..10

试验5deboor曲线的绘制…………..13

南昌高校试验报告

voidC线与圆2View::midcircle(intr,intcolor,CDC*pDC){

}else{}

d+=2*(*-y)+5;*++;y--;

int*=0;floatd;d=1.25-r;

pDC-SetPi*elV(*+100,y+100,RGB(255,0,while(*y){

if(d0){

d+=2**+3;*++;

inty=r;

同学姓名:涂汉江学号:6100410181专业班级:数字媒体101班

试验类型:□验证□综合■设计□创新试验日期:2022-12-16

试验1绘制直线和圆

1.试验目的

掌控基本图形的绘制

0));

2.试验内容

1.、绘制一条直线2、.绘制一个圆

3.试验环境

1、个人计算机

2、Windows7操作系统3、VS2022

4.试验步骤

主要的代码:

1、线的实现代码:

这里采纳的是数值微分法的方法

voidC线与圆2View::dda(int*0,inty0,int*1,inty1,intcolor,CDC*pDC){}

pDC-SetPi*elV(*,int(y+0.5),RGB(255}

y=y+k;

,0,0));

floatd*,dy,k,y;d*=*1-*0;dy=y1-y0;k=dy/d*;y=y0;

for(int*=*0;*=*1;*++){

pDC-SetPi*elV(*+100,y+100,RGB(255,0,pDC-SetPi*elV(y+100,*+100,RGB(255,0,pDC-SetPi*elV(-*+100,y+100,RGB(255,0pDC-SetPi*elV(*+100,-y+100,RGB(255,0pDC-SetPi*elV(-*+100,-y+100,RGB(255,pDC-SetPi*elV(-y+100,*+100,RGB(255,0pDC-SetPi*elV(y+100,-*+100,RGB(255,0pDC-SetPi*elV(-y+100,-*+100,RGB(255,}

0));0));,0));},0));0,0));,0));,0));0,0));

2、圆的实现代码

这里采纳的是中点画圆算法

3、头文件包含的文件#includestdaf*.h

//SHARED_HANDLERS可以在实现预览、

缩略图和搜寻筛选器句柄的

//ATL项目中进行定义,并允许与该项目共享文档代码。

#ifndefSHARED_HANDLERS#include线与圆.h#endif

#include线与圆Doc.h#include线与圆View.h

#ifdef_DEBUG

#definenewDEBUG_NEW#endif

4、调用部分

voidC线与圆View::OnDraw(CDC*pDC){C);

C线与圆Doc*pDoc=GetDocument();ASSERT_VALID(pDoc);if(!pDoc)

return;

midcircle(50,RGB(255,0,0),pDC);dda(200,200,300,300,RGB(255,0,0),pD

}

这里画的是原点为〔100,100〕半径为50的圆和一条以〔200,200〕和〔300,300〕为端点的线段。

5、试验结果如下截图:

5.试验思索和问题解决

原来只能做出1/4的圆的,通过转变中心坐标和坐标正负号,重复循环4次,最末得到一个整圆。前面有做直线的阅历,所以总体来说还是比较顺当的。上个学期学习了数值分析课程,也用过类似的描点函数,同样是设计函数,实现循环描点。

南昌高校试验报告

//NOTE-theClassWizardwilladd//DONOTEDITwhatyouseein

andremovemappingmacroshere.theseblocksofgeneratedcode!

//}}AF*_MSG_MAP

//StandardprintingcommandsON_COMMAND(ID_FILE_PRINT,ON_COMMAND(ID_FILE_PRINT_DIRECT,ON_COMMAND(ID_FILE_PRINT_PREVIEW,

同学姓名:涂汉江学号:6100410181专业班级:数字媒体101班

试验类型:□验证□综合■设计□创新试验日期:2022-12-16

试验2种子填充算法1.试验目的

掌控图形的填充算法

CView::OnFilePrint)CView::OnFilePrint)CView::OnFilePrintPreview)END_MESSAGE_MAP()

///////////////////////////////////////////////////////////////////////////////CSeedfillViewconstruction/destruction

CSeedfillView::CSeedfillView(){}

CSeedfillView::~CSeedfillView(){}BOOL

CSeedfillView::PreCreateWindow(CREATESTRUCTcs){}

///////////////////////////////////////////////////////////////////////////////CSeedfillViewdrawing

voidCSeedfillView::OnDraw(CDC*pDC)

2.试验内容

1.绘制一个矩形

2.用种子填充算法为其上色

3.试验环境

1.个人计算机

2.Windows7操作系统3.VS2022

4.试验步骤

主要代码部分:

//seedfillView.cpp:implementationoftheCSeedfillViewclass//

#includestdaf*.h#includeseedfill.h

#includeseedfillDoc.h#includeseedfillView.h

#ifdef_DEBUG

#definenewDEBUG_NEW#undefTHIS_FILE

staticcharTHIS_FILE[]=__FILE__;#endif

///////////////////////////////////////////////////////////////////////////////CSeedfillView

IMPLEMENT_DYNCREATE(CSeedfillView,CView)

BEGIN_MESSAGE_MAP(CSeedfillView,CView)

//{{AF*_MSG_MAP(CSeedfillView)

//TODO:addconstructioncodehere

//TODO:ModifytheWindowclassor//theCREATESTRUCTcs

returnCView::PreCreateWindow(cs);

stylesherebymodifying

CSeedfillDoc*pDoc=GetDocument();ASSERT_VALID(pDoc);

//TODO:adddrawcodefornativedata

}

}

here

DrawRectangle(pDC);}

voidCSeedfillView::seed(int*,inty,intfillcolor,intoldcolor,CDC*pDC){}

voidCSeedfillView::DrawRectangle(CDC*pDC){

///////////////////////////////////////////////////////////////////////////////CSeedfillViewprintingBOOL

CSeedfillView::OnPreparePrinting(CPrintInfo*pInfo){}

voidCSeedfillView::OnBeginPrinting(CDC*/*pDC*/,CPrintInfo*/*pInfo*/){

pDC-SetPi*elV(*,y,fillcolor);

}void{

//TODO:addcleanupafterprinting}

///////////////////////////////////////////////////////////////////////////////CSeedfillViewdiagnostics

#ifdef_DEBUG

voidCSeedfillView::AssertValid()const{}

voidCSeedfillView::Dump(CDumpConte*tdc)const{}

CView::Dump(dc);CView::AssertValid();

CSeedfillView::OnEndPrinting(CDC*//TODO:adde*trainitializationbeforeprinting

//defaultpreparation

returnDoPreparePrinting(pInfo);

seed(210,210,(255,0,0),(225,255,225

),pDC);

intccolor;

ccolor=pDC-GetPi*el(*,y);if(ccolor!=oldcolorccolor!=fillco{

lor)

seed(*+1,y,fillcolor,oldcolor,pDC);seed(*-1,y,fillcolor,oldcolor,pDC);seed(*,y+1,fillcolor,oldcolor,pDC);seed(*,y-1,fillcolor,oldcolor,pDC);}

/*pDC*/,CPrintInfo*/*pInfo*/)

for(inti=200;i=300;i++){

pDC-SetPi*elV(200,i,RGB(0,0,0));pDC-SetPi*elV(300,i,RGB(0,0,0));pDC-SetPi*elV(i,200,RGB(0,0,0));

CSeedfillDoc*

CSeedfillView::GetDocument()non-debugversionisinline{}

#endif//_DEBUG

///////////////////////////////////////////////////////////////////////////////CSeedfillViewmessagehandlers

ASSERT(m_pDocument-IsKindOf(RUNTIMreturn(CSeedfillDoc*)m_pDocument;E_CLASS(CSeedfillDoc)));

//

运行结果如下:

5.试验思索和问题解决

参考书上的伪代码并且与同学室友相互争论实践才得到最末的结果,结果也差强人意,图显示的效果不好,很小。

南昌高校试验报告

//

#includestdaf*.h#includeLineCut.h

#includeLineCutDoc.h#includeLineCutView.h

#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILE

staticcharTHIS_FILE[]=__FILE__;#endif

///////////////////////////////////////////////////////////////////////////////CLineCutView

IMPLEMENT_DYNCREATE(CLineCutView,CView)

BEGIN_MESSAGE_MAP(CLineCutView,CView)}

CLineCutView::~CLineCutView(){}BOOL

CLineCutView::PreCreateWindow(CREATESTRUCTcs){}

///////////////////////////////////////////////////////////////////////////////CLineCutViewdrawing

voidCLineCutView::OnDraw(CDC*pDC)

同学姓名:涂汉江学号:6100410181专业班级:数字媒体101班

试验类型:□验证□综合■设计□创新试验日期:2022-12-16

试验3线条的剪裁

1.试验目的

掌控对线条的剪裁算法

2.试验内容

1.绘制一条直线2.绘制一个矩形3.计算矩形内的线段4.绘制矩形内的线段

3.试验环境

1.个人计算机

2.Windows7操作系统3.VS2022

4.试验步骤

//LineCutView.cpp:implementationoftheCLineCutViewclass

//NOTE-theClassWizardwilladdandremovemappingmacroshere.

//DONOTEDITwhatyouseeintheseblocksofgeneratedcode!//}}AF*_MSG_MAP

//Standardprintingcommands

ON_COMMAND(ID_FILE_PRINT,ON_COMMAND(ID_FILE_PRINT_DIRECT,ON_COMMAND(ID_FILE_PRINT_PREVIEW,CView::OnFilePrint)CView::OnFilePrint)CView::OnFilePrintPreview)END_MESSAGE_MAP()

///////////////////////////////////////////////////////////////////////////////CLineCutViewconstruction/destruction

CLineCutView::CLineCutView(){

//TODO:addconstructioncodehere

//{{AF*_MSG_MAP(CLineCutView)

//TODO:ModifytheWindowclassor//theCREATESTRUCTcs

returnCView::PreCreateWindow(cs);

stylesherebymodifying

DrawRectangle(pDC);

DrawLine(100,200,400,300,RGB(255,0,0),pDC);

C_S_Line_Clip(100,200,400,300,pDC);}voidpDC){}

voidCLineCutView::DrawLine(int*0,inty0,int*1,inty1,intcolor,CDC*pDC){}

CLineCutDoc*pDoc=GetDocument();ASSERT_VALID(pDoc);

//TODO:adddrawcodefornativedata

voidCLineCutView::encode(float*,floaty,intcode){

CLineCutView::DrawRectangle(CDC*

for(inti=200;i=300;i++){

pDC-SetPi*elV(200,i,RGB(0,0,0));pDC-SetPi*elV(300,i,RGB(0,0,0));pDC-SetPi*elV(i,200,RGB(0,0,0));pDC-SetPi*elV(i,300,RGB(0,0,0));}

}void{

int*;

floatd*,dy,k,y;d*=*1-*0;dy=y1-y0;k=dy/d*;y=y0;

for(*=*0;*=*1;*++){

pDC-SetPi*elV(*,int(y+0.5),color);}

y=y+k;

int*,y;

intcode1,code2,code;encode(*1,y1,code1);encode(*2,y2,code2);while(code1!=0||code2!=0){

y=y1+(y2-y1)*(*L-*1)/(*2-*1);

}

elseif((RIGHTcode)!=0){}

elseif((BOTTOMcode)!=0){

*=*R;

y=y1+(y2-y1)*(*R-*1)/(*2-*1);if((code1code2)!=0)

return;code=code1;if(code1==0){

*=*L;code=code2;if((LEFTcode)!=0)

CLineCutView::C_S_Line_Clip(float

*1,floaty1,float*2,floaty2,CDC*pDC)

intc;c=0;if(**L)

c=c|LEFT;c=c|RIGHT;c=c|BOTTOM;c=c|TOP;elseif(**R)if(yYB)elseif(yYT)code=c;

here

}

{}void{}

///////////////////////////////////////////////////////////////////////////////CLineCutViewdiagnostics

#ifdef_DEBUG

voidCLineCutView::AssertValid()const{}

voidCLineCutView::Dump(CDumpConte*tdc)const{}

CLineCutDoc*CLineCutView::GetDocument()//non-debugversionisinline{}

#endif//_DEBUG

///////////////////////////////////////////////////////////////////////////////CLineCutViewmessagehandlers

ASSERT(m_pDocument-IsKindOf(RUNTIME_return(CLineCutDoc*)m_pDocument;CLASS(CLineCutDoc)));

CView::Dump(dc);CView::AssertValid();

//TODO:addcleanupafterprinting

CLineCutView::OnEndPrinting(CDC*//TODO:adde*trainitialization

*=*1+(*2-*1)*(YB-y1)/(y2-y1);

*=*1+(*2-*1)*(YT-y1)/(y2-y1);}

//DISplayLine(*1,y1,*2,y2);DrawLine(*1,y1,*2,y2,RGB(0,0,0),DrawLine(*1,y1,*2,y2,RGB(0,0,255),return;

}

if(code==code1){}else{}

*2=*;y2=y;

encode(*,y,code2);*1=*;y1=y;

encode(*,y,code1);}

elseif((TOPcode)!=0){

y=YT;

beforeprinting

/*pDC*/,CPrintInfo*/*pInfo*/)

pDC);pDC);

///////////////////////////////////////////////////////////////////////////////CLineCutViewprintingBOOL

CLineCutView::OnPreparePrinting(CPrintInfo*pInfo){}

voidCLineCutView::OnBeginPrinting(CDC*

//defaultpreparation

returnDoPreparePrinting(pInfo);

运行结果如下:

5.试验思索和问题解决

这次试验的主要目的是完成对既有线条的剪裁。首先用直线的绘制方法绘制出矩形的边框,然后绘制出直线,再调用剪裁算法完成对直线的剪裁和剪裁后线段的输出。

此次算法仅实现了对直线的剪裁,而无通用性。因此在以后的学习生活中应当思索如何编写具有通用性的剪裁算法。

南昌高校试验报告

theseblocksofgeneratedcode!

//}}AF*_MSG_MAP

//StandardprintingcommandsON_COMMAND(ID_FILE_PRINT,ON_COMMAND(ID_FILE_PRINT_DIRECT,ON_COMMAND(ID_FILE_PRINT_PREVIEW,

同学姓名:涂汉江学号:6100410181专业班级:数字媒体101班

试验类型:□验证□综合■设计□创新试验日期:2022-12-16

CView::OnFilePrint)CView::OnFilePrint)CView::OnFilePrintPreview)END_MESSAGE_MAP()

///////////////////////////////////////////////////////////////////////////////CQu*ianViewconstruction/destruction

CQu*ianView::CQu*ianView(){}

CQu*ianView::~CQu*ianView(){}BOOL

CQu*ianView::PreCreateWindow(CREATESTRUCTcs){}

///////////////////////////////////////////////////////////////////////////////CQu*ianViewdrawing

voidCQu*ianView::OnDraw(CDC*pDC){

试验4B样条曲线绘制1.试验目的

掌控用B样条法进行曲线的绘制

2.试验内容

掌控用B样条法进行曲线的绘制

3.试验环境

1.个人计算机

2.Windows7操作系统3.VS2022

4.试验步骤

//Qu*ianView.cpp:implementationoftheCQu*ianViewclass//

#includestdaf*.h#includeQu*ian.h

#includeQu*ianDoc.h#includeQu*ianView.h

#ifdef_DEBUG

#definenewDEBUG_NEW#undefTHIS_FILE

staticcharTHIS_FILE[]=__FILE__;#endif

///////////////////////////////////////////////////////////////////////////////CQu*ianView

IMPLEMENT_DYNCREATE(CQu*ianView,CView)

BEGIN_MESSAGE_MAP(CQu*ianView,CView)

//{{AF*_MSG_MAP(CQu*ianView)

//NOTE-theClassWizardwilladd//DONOTEDITwhatyouseein

//TODO:addconstructioncodehere

//TODO:ModifytheWindowclassor//theCREATESTRUCTcs

returnCView::PreCreateWindow(cs);

stylesherebymodifying

andremovemappingmacroshere.CQu*ianDoc*pDoc=GetDocument();ASSERT_VALID(pDoc);

}

//TODO:adddrawcodefornativedataDrawQ(pDC);

void{}

///////////////////////////////////////////////////////////////////////////////CQu*ianViewdiagnostics

#ifdef_DEBUG

voidCQu*ianView::AssertValid()const{}

CView::AssertValid();

//TODO:addcleanupafterprinting

CQu*ianView::OnEndPrinting(CDC*

/*pDC*/,CPrintInfo*/*pInfo*/)

here

voidCQu*ianView::DrawQ(CDC*pDC){}float{

floatpp;

pp=point0*(1-t)*(1-t)*(1-t)+point1*

CQu*ianView::p(int

point0,int

point1,intpoint2,intpoint3,floatt)

float*,y;

for(floati=0.0;i=1.0;i=i+0.0001){

*=p(100,200,300,400,i);y=p(100,50,130,150,i);

pDC-SetPi*elV(*,y,RGB(255,0,0));}

voidCQu*ianView::Dump(CDumpConte*tdc)const{}

CQu*ianDoc*CQu*ianView::GetDocument()//non-debugversionisinline{}

#endif//_DEBUG

///////////////////////////////////////////////////////////////////////////////CQu*ianViewmessagehandlers

ASSERT(m_pDocument-IsKindOf(RUNTIME_return(CQu*ianDoc*)m_pDocument;CLASS(CQu*ianDoc)));

CView::Dump(dc);

3*t*(1-t)*(1-t)+point2*3*t*t*(1-t)+point3*t*t*t;}

///////////////////////////////////////////////////////////////////////////////CQu*ianViewprintingBOOL

CQu*ianView::OnPreparePrinting(CPrintInfo*pInfo){}

voidCQu*ianView::OnBeginPrinting(CDC*/*pDC*/,CPrintInfo*/*pInfo*/){}

returnpp;

//defaultpreparation

returnDoPreparePrinting(pInfo);

运行结果如下:

//TODO:adde*trainitialization

beforeprinting

5.试验思索和问题解决

此次试验运用B样条法绘制曲线。上学期在数值分析试验课中学习过绘制字母及数字的方法,因此做此次作业变得得心应手。

首先设置四个掌握点的坐标,设置变量T,多次循环逐一输出计算出的点的位置信息,就完成率了曲线的简约绘制。

南昌高校试验报告

CView::OnFilePrint)

ON_COMMAND(ID_FILE_PRINT_DIRECT,ON_COMMAND(ID_FILE_PRINT_PREVIEW,CView::OnFilePrint)CView::OnFilePrintPreview)END_MESSAGE_MAP()

///////////////////////////////////////////////////////////////////////////////CDeboorViewconstruction/destruction

CDeboorView::CDeboorView(){}

CDeboorView::~CDeboorView(){}BOOL

CDeboorView::PreCreateWindow(CREATESTRUCTcs){}

///////////////////////////////////////////////////////////////////////////////CDeboorViewdrawing

voidCDeboorView::OnDraw(CDC*pDC){

CDeboorDoc*pDoc=GetDocument();ASSERT_VALID(pDoc);

//TODO:adddrawcodefornativedatareturnCView::PreCreateWindow(cs);//TODO:ModifytheWindowclassor//theCREATESTRUCTcsstylesherebymodifying

//TODO:addconstructioncodehere

同学姓名:涂汉江学号:6100410181专业班级:数字媒体101班

试验类型:□验证□综合■设计□创新试验日期:2022-12-16

试验5deboor曲线的绘制1.试验目的

掌控绘制deboor曲线

2.试验内容

绘制贝塞尔曲线

3.试验环境

1.个人计算机

2.Windows7操作系统3.VS2022

4.试验步骤

//deboorView.cpp:implementationoftheCDeboorViewclass//

#includestdaf*.h#includedeboor.h#includedeboorDoc.h#includedeboorView.h#ifdef_DEBUG

#definenewDEBUG_NEW#undefTHIS_FILE

staticcharTHIS_FILE[]=__FILE__;#endif

///////////////////////////////////////////////////////////////////////////////CDeboorView

IMPLEMENT_DYNCREATE(CDeboorView,CView)

BEGIN_MESSAGE_MAP(CDeboorView,CView)

//{{AF*_MSG_MAP(CDeboorView)

//NOTE-theClassWizardwilladd//DONOTEDITwhatyouseein

andremovemappingmacroshere.theseblocksofgeneratedcode!

//}}AF*_MSG_MAP

//StandardprintingcommandsON_COMMAND(ID_FILE_PRINT,

here

//五个掌握顶点四条边/*

for(inti=0;i=200;i++){

pDC-SetPi*elV(i+100,100,RGB(0,255,0)

);}

for(i=0;i=100;i++){}

deboordraw5(100,100,300,100,300,200,100,200,100,100,RGB(255,0,0),pDC);*/

//四个掌握顶点,三条边

deboordraw(100,200,200,100,300,150,400,400,RGB(255,0,0),pDC);

DrawLine(100,200,200,100,RGB(0,255,0),pDC);

DrawLine(200,100,300,150,RGB(0,255,0),pDC);

DrawLine(300,150,400,400,RGB(0,255,0),pDC);}

voidCDeboorView::DrawLine(int*0,inty0,int*1,inty1,intcolor,CDC*pDC){}

//五个掌握点,四条边void

CDeboorView::deboordraw5(float

*0,floaty0,float*1,floaty1,float*2,floaty2,float*3,floaty3,float*4,floaty4,floatcolor,CDC*pDC)

{

float*,y;float*[5];floatY[5];*[0]=*0;*[1]=*1;*[2]=*2;*[3]=*3;*[4]=*4;Y[0]=y0;Y[1]=y1;Y[2]=y2;Y[3]=y3;Y[4]=y4;

pDC-SetPi*elV(i+100,200,RGB(0,255,

0));

pDC-SetPi*elV(100,100+i,RGB(0,255,pDC-SetPi*elV(300,100+i,RGB(0,255,

0));0));

pDC-SetPi*elV(100,100,color);for(floatt=0;t=1;t=t+0.001)}

floatCDeboorView::deboor5(floatt,intr,inti,floatp[5]){

intT[8];

T[0]=T[1]=T[2]=T[3]=0;T[4]=T[5]=T[6]=T[7]=1;//staticr=4;//statici=3;floata;if(r==0){}else{

a=(t-T[i])/(T[i+4-r]-T[i])*deboor5(t,

//p=pi;returnp[i];

{}

*=deboor5(t,3,4,*);y=deboor5(t,3,4,Y);

pDC-SetPi*elV(*,y,color);pDC-SetPi*elV(*,y,color);

int*;

floatd*,dy,k,y;d*=*1-*0;dy=y1-y0;k=dy/d*;y=y0;

for(*=*0;*=*1;*++){

pDC-SetPi*elV(*,int(y+0.5),color);}

y=y+k;

r-1,i,p)+(T[i+4-r]-t)/(T[i+4-r]-T[i])*deboor5(t,r-1,i-1,p);

}

returna;

}

//四个掌握顶点,三条边

floatCDeboorView::deboor(floatt,intr,inti,floatp[4]){

intT[8];

T[0]=T[1]=T[2]=T[3]=0;T[4]=T[5]=T[6]=T[7]=1;//staticr=4;//statici=3;floata;if(r==0){}else{

a=(t-T[i])/(T[i+4-r]-T[i])*deboor(t

//p=pi;returnp[i];

pDC-SetPi*elV(*,y,color);}

//////////////////////////////////

温馨提示

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

评论

0/150

提交评论