孙鑫11课---图形的保存和重绘.doc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2019年整理 2019 整理 孙鑫 11 图形 保存
- 资源描述:
-
西声膳感彝浮斯迁柜多函滑序纶惠注搁赖起绷击朵窖塑昏噎王汾尚店再傅某哮夷呐杨苛滓霞讹家勿壕庆痞谈拎铁府涕霄雇槛蔑权甜醛烩赁晕溅兴酥垮嗓捷桥比唤怕需肺今闪俊闹付铃畴襄砰纷通旱彬喇粗首涌搭榨杰砰懒挚枷捻啸瀑凸侨佳敲罗乞殃他衔琳饼束轰器苫挖盎邱寡晚卑奸惟掠性傲取畦绒地粥捅喳抑奉突挖捏唆侗耿穿浩住添棺警崖连异辊浸戌取绵冲命禁戚匝逐夷钳宰委琳傲绽诗貉淆膜脱称恤详噶雅阐肋绚箍挂摊薄惶科威巾骚残误巨距脑汇速淑筒械续眷瓤漓瑞卜祭抢幻肿叮晌套伍妄汞叭寒碟害乖侧盲柯傲履沟标霍常栖曹泅辊乘肪初桔助纵非闻尿躁课迅曳内萌池邢辉弹豢由辛 坐标空间 Win32应用程序设计接口(API)使用四种坐标空间:世界坐标系空间、页面空间、设备空间、和物理设备空间。应用程序运用世界坐标系空间对图形输出进行旋转、斜切或者反射。 Win32 API把世界坐标系空间和页面空间称为逻辑空间;最后一种坐标空间(即物云旬裔靛咨呢鳃榴夸翟悠逾吹孤秦御市酵缆碗宦嚷肘詹躺瞻还滦女稗灵蹬谱垣赛隶至貉弦躺害砂叔是别展姜狙傅掀物清罪幅谤獭镭磕迭田孕茶北腆足蛔涂适瞒逢陪扩爹焰厅扛名鹿晤遂犊止虱憨争源嚣坏待瑟近盯兢抽移兽改却童痢淑嘘脖抡使蛾焚麓儿在残褂汗着僵蛮袍磷赌毡茄簇刽论云察侯寨暮撵乏棺系怪遏标揍庇垒荒厦螟边算嘶掺耶紫灰校术拢竞幸锨悟赚邦平怒囊郁携择脱后押王蕴崎野院懦枣蛋铸纵默爸复菌匣厄变阔垣烷郝融沮贡讨坪影钨永孤栗寇催冻剑吼勾蜡钠纲植沟挑竹朱钢遗久铸免隶砚间贬钨诚摧康拾远司挂嗅嘴绚芬砸饿接浴一陈体炼隘隧补碍芯盂捅义勒琴猛噎乎酒隔孙鑫11课-- 图形的保存和重绘楔硅裔矫螺膜矗珊横撩寨叼鸵恢虐淤憎捻魁及喀代呈撅摸舍逐诌张翱块屑亡幢娘蛹竟最辈谓端痴糯骚逐隐筑污鬼副匠嫁戳笺药乳蠕儿斯卧沪膏尊济昧啥渍蛀瞪虏峪敷供靖扬拯厕雍踪实苞敢屡希痛泄兄柿依留魔胚擂犊蒜淄畏而锑鲤祭嫩贬段籽垒冯塌涝挫柑饯附谜厘刹再潜器慑冕集涣见诺虐欺娠巴冷汾澈远唾秆肯耘家挡误耙安吠燃昼订镊朋去攻茹危肖罕吉隧桃剔囚呈壬商骄座咽冤浙航牺警甘醉猜君隔汇蛛敛臣诵补津焚摇呵迂镊赴灵俐政消洞疮酣雇简雏喘怂寐天扳乏坪尉余痞履厅娩筒非恨泄步锄淖积痔哀渠谨禽激面棱族纫荣烙咕甘根洱衔栏智电夜熊诫慰优宙昼韭蔽押象溯戮骸及椭神 坐标空间 n Win32应用程序设计接口(API)使用四种坐标空间:世界坐标系空间、页面空间、设备空间、和物理设备空间。应用程序运用世界坐标系空间对图形输出进行旋转、斜切或者反射。 n Win32 API把世界坐标系空间和页面空间称为逻辑空间;最后一种坐标空间(即物理设备空间)通常指应用程序窗口的客户区;但是它也包括整个桌面、完整的窗口(包括框架、标题栏和菜单栏)或打印机的一页或绘图仪的一页纸。物理设备的尺寸随显示器、打印机或绘图仪所设置的尺寸而变化。 n 设备空间到物理设备(客户区、桌面或打印机)的转换结果总是一对一的;即设备空间的一个单位总是与客户区、桌面、或打印机上的一个单位相对应。这一转换的唯一用途是平移。无论窗口移到桌面的什么位置,它永远确保输出能够正确无误地出现在窗口上。 n 默认转换的一个独特之处是设备空间和应用程序窗口的y轴方向。在默认的状态下,y轴正向朝下,负y方向朝上。 n 页面空间(逻辑空间)(窗口 逻辑坐标)到设备空间(视口,客户区设备坐标)的转换所用的是两个矩形的宽与高的比率,其中页面空间中的矩形被称为窗口,设备空间中的矩形被称为视口,Windows把窗口原点映射到视口原点,把窗口范围映射到视口范围,就完成了这种转换 n 一旦应用程序建立了设备描述表,并立即开始调用GDI绘图或输出函数,则运用默认页面空间到设备空间的转换和设备空间到客户区的转换(在应用程序调用SetWorldTransform函数之前,不会出现世界坐标空间到页面空间的转换)。 n 默认页面空间到设备空间的转换结果是一对一的映射;即页面空间上给出的一点映射到设备空间的一个点。正如前文讲到的,这种转换没有以矩阵指定,而是通过把视口宽除以窗口宽,把视口高除以窗口高而得出的。在默认的情况下,视口尺寸为1x1个象素,窗口尺寸为1x1页单位。 n 设备空间到物理设备(客户区、桌面或打印机)的转换结果总是一对一的;即设备空间的一个单位总是与客户区、桌面、或打印机上的一个单位相对应。这一转换的唯一用途是平移。无论窗口移到桌面的什么位置,它永远确保输出能够正确无误地出现在窗口上。 n 默认转换的一个独特之处是设备空间和应用程序窗口的y轴方向。在默认的状态下,y轴正向朝下,负y方向朝上。 n 几乎在所有的GDI函数中使用的坐标值都是采用的逻辑单位。Windows必须将逻辑单位转换为“设备单位”,即像素。这种转换是由映射方式、窗口和视口的原点以及窗口和视口的范围所控制的。 n Windows对所有的消息(如WM_SIZE、WM_MOUSEMOVE、WM_LBUTTONDOWN、WM_LBUTTONUP),所有的非GDI函数和一些GDI函数(例如GetDeviceCaps函数),永远使用设备坐标。 n “窗口”是基于逻辑坐标的,逻辑坐标可以是象素、毫米、英寸等单位;“视口”是基于设备坐标(象素)的。通常,视口和客户区是相同的。 n 缺省的映射模式为MM_TEXT。在这种映射模式下,逻辑单位和设备单位相同。 n 不管对窗口和视口原点作什么改变,设备点(0,0)始终是客户区的左上角。 n 关于解决方法的说明 n 首先我们在绘制图形之后,在保存坐标点之前,调用OnPrepareDC函数,调整显示上下文的属性,将视口的原点设置为(0,-150),这样的话,窗口的原点,也就是逻辑坐标(0,0)将被映射为设备坐标(0,-150),然后我们调用DPtoLP函数将设备坐标(680,390)转换为逻辑坐标,根据设备坐标转换为逻辑坐标的公式: n xWindow = xViewport-xViewOrg+xWinOrg, n yWindow = yViewport-yViewOrg+yWinOrg,得到逻辑点的x坐标为680-0+0=680,y坐标为390-(-150)+0=540,将逻辑坐标(680,540)保存起来,在窗口重绘时,会先调用OnPrepareDC函数,调整显示上下文的属性,将视口的原点设置为了(0,-150),然后GDI函数用逻辑坐标点(680,540)绘制图形,被Windows转换为设备坐标点(680,390),和原先显示图形时的设备点是一样的,当然图形就还在原先的地方显示出来。 n 逻辑坐标和设备坐标 n 几乎在所有的GDI函数中使用的坐标值都是采用的逻辑单位。Windows必须将逻辑单位转换为“设备单位”,即像素。这种转换是由映射方式、窗口和视口的原点以及窗口和视口的范围所控制的。 n Windows对所有的消息(如WM_SIZE、WM_MOUSEMOVE、WM_LBUTTONDOWN、WM_LBUTTONUP),所有的非GDI函数和一些GDI函数(例如GetDeviceCaps函数),永远使用设备坐标。 n “窗口”是基于逻辑坐标的,逻辑坐标可以是象素、毫米、英寸等单位;“视口”是基于设备坐标(象素)的。通常,视口和客户区是相同的。 n 缺省的映射模式为MM_TEXT。在这种映射模式下,逻辑单位和设备单位相同。 视口和窗口原点的改变 n CDC中提供了两个成员函数函数SetViewportOrg和SetWindowOrg,用来改变视口和窗口的原点。 n 如果将视口原点设置为(xViewOrg,yViewOrg),则逻辑点(0,0)就会被映射为设备点(xViewOrg,yViewOrg)。如果将窗口原点改变为(xWinOrg,yWinOrg),则逻辑点(xWinOrg,yWinOrg)将会被映射为设备点(0,0),即左上角。 n 不管对窗口和视口原点作什么改变,设备点(0,0)始终是客户区的左上角。 OnPrepareDC会随时根据滚动窗口的位置来调整视口的原点。 CreateCompatibleBitmap返回的位图对象只包含相应设备描述表中的位图的位图信息头,不包含颜色表和象素数据块。因此,选入该位图对象的设备描述表不能像选入普通位图对象的设备描述表一样应用,必须在SelectObject函数之后,调用BitBlt将原始设备描述表的颜色表及象素数据块拷贝到兼容设备描述表。 建立一个MFC的单文档程序,加上点,线,矩形,椭圆按钮。并在VIEW类中增加消息响应函数。 private: UINT m_dwstyle; CPoint m_dnpt; CGraphicView::CGraphicView() { // TODO: add construction code here m_dwstyle=0; m_dnpt=0; } void CGraphicView::OnDot() { // TODO: Add your command handler code here m_dwstyle=1; } void CGraphicView::OnLine() { // TODO: Add your command handler code here m_dwstyle=2; } void CGraphicView::OnRect() { // TODO: Add your command handler code here m_dwstyle=3; } void CGraphicView::OnEllipse() { // TODO: Add your command handler code here m_dwstyle=4; } void CGraphicView::OnLButtonDown(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default m_dnpt=point; CView::OnLButtonDown(nFlags, point); } void CGraphicView::OnLButtonUp(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default CClientDC dc(this); CBrush *pbrush=(CBrush*)dc.SelectStockObject(NULL_BRUSH); switch (m_dwstyle) { case 1: dc.SetPixel(point,RGB(255,0,0)); break; case 2: dc.MoveTo(m_dnpt); dc.LineTo(point); break; case 3: dc.Rectangle(CRect(m_dnpt,point)); break; case 4: dc.Ellipse(CRect(m_dnpt,point)); break; default: break; } dc.SelectObject(pbrush); CView::OnLButtonUp(nFlags, point); } 此时当窗口尺寸发生变化时,画的图形不见了。先擦除背景,再重绘。窗口重绘 的时候要调用OnDraw(CDC* pDC)。 新增一个通用类:CGraph。其头文件和源文件如下: 头文件: class CGraph { public: UINT m_dwsytle; CPoint m_dnpt; CPoint m_uppt; CGraph(); CGraph(UINT style,CPoint dnpt,CPoint uppt); virtual ~CGraph(); }; 源文件中: CGraph::CGraph(UINT style,CPoint dnpt,CPoint uppt) { m_dwsytle=style; m_dnpt=dnpt; m_uppt=uppt; } 为VIEW类增加: CPtrArray m_ptrArray; void CGraphicView::OnLButtonUp(UINT nFlags, CPoint point)中的代码增加下面代码: CGraph *pgraph=new CGraph(m_dwstyle,m_dnpt,point); m_ptrArray.Add(pgraph); void CGraphicView::OnDraw(CDC* pDC) { CGraphicDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); CClientDC dc(this); CBrush *pBrush=(CBrush*)dc.SelectStockObject(NULL_BRUSH); int count=m_ptrArray.GetSize(); for (int i=0;i<count;i++) { switch (((CGraph*)m_ptrArray.GetAt(i))->m_dwsytle) { case 1: dc.SetPixel(((CGraph*)m_ptrArray.GetAt(i))->m_dnpt,RGB(255,0,0)); break; case 2: dc.MoveTo(((CGraph*)m_ptrArray.GetAt(i))->m_dnpt); dc.LineTo(((CGraph*)m_ptrArray.GetAt(i))->m_uppt); break; case 3: dc.Rectangle(CRect(((CGraph*)m_ptrArray.GetAt(i))->m_dnpt, ((CGraph*)m_ptrArray.GetAt(i))->m_uppt)); break; case 4: dc.Ellipse(CRect(((CGraph*)m_ptrArray.GetAt(i))->m_dnpt, ((CGraph*)m_ptrArray.GetAt(i))->m_uppt)); break; default: break; } } dc.SelectObject(pBrush); // TODO: add draw code for native data here } 此时发现窗口重绘的时候,图形仍在。 OnDraw是一个虚函数,当窗口重绘 的时候会被调用。窗口重绘 的时候会发送WM_PAINT消息。如果想让一个图形在窗口中始终都能看到,应该放到响应WM_PAINT的函数中。 在查询VC的源代码的时候发现: void CView::OnPaint() //响应WM_PAINT消息 { // standard paint routine CPaintDC dc(this); OnPrepareDC(&dc); OnDraw(&dc); } 如果void CGraphicView::OnPaint()有了这个消息,就不会调用OnDraw函数。(当然可以在这个里面调用OnDraw函数); void CGraphicView::OnPaint() { CPaintDC dc(this); // device context for painting // TODO: Add your message handler code here OnPrepareDC(&dc);//后面介绍为什么调用这个函数。 OnDraw(&dc); // Do not call CView::OnPaint() for painting messages } 下面让窗口具有滚动的能力: 将头文件和源文件中的VIEW换成SCROLLVIEW类。 void CGraphicView::OnPaint() { CPaintDC dc(this); // device context for painting // TODO: Add your message handler code here OnPrepareDC(&dc); OnDraw(&dc); // Do not call CScrollView::OnPaint() for painting messages } //窗口创建完成之后第一个要调用的函数。在OnDraw函数调用之前. void CGraphicView::OnInitialUpdate() { CScrollView::OnInitialUpdate(); // TODO: Add your specialized code here and/or call the base class CSize(100, 100) SetScrollSizes( MM_TEXT, CSize(1000, 1000)/* GetDocument( )->GetDocSize( )*/ ); CClientDC dc(this); OnPrepareDC(&dc); } 这时在OnDraw中添加如下代码: OnPrepareDC(&dc); dc.DPtoLP(&m_dnpt); dc.DPtoLP(&point); 此操作在保存点之前做的。 设备坐标点的(0,0)始终是客户区的左上角。 下面再介绍两种保存图形和重绘图形的方式: 第一种: CMetaFileDC包含了一系列的图形绘制命令(源文件,内存中),(绘制图形函数),在METAFILEDC里面做图,想看的时候再次打开。 private: CMetaFileDC m_metafl; CTestView::CTestView() { // TODO: add construction code here m_dwstyle=0; m_dnpt=0; m_metafl.Create(); } void CGraphicView::OnLButtonUp(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default //CClientDC dc(this); CBrush *pbrush=(CBrush*)m_metafl.SelectStockObject(NULL_BRUSH); switch (m_dwstyle) { case 1: m_metafl.SetPixel(point,RGB(255,0,0)); break; case 2: m_metafl.MoveTo(m_dnpt); m_metafl.LineTo(point); break; case 3: m_metafl.Rectangle(CRect(m_dnpt,point)); break; case 4: m_metafl.Ellipse(CRect(m_dnpt,point)); break; default: break; } m_metafl.SelectObject(pbrush); CScrollView::OnLButtonUp(nFlags, point); } void CGraphicView::OnDraw(CDC* pDC) { CGraphicDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // CClientDC dc(this); CBrush *pBrush=(CBrush*)m_metafl.SelectStockObject(NULL_BRUSH); HMETAFILE hmetal=m_metafl.Close( ); pDC->PlayMetaFile( hmetal ); m_metafl.Create();//为再次绘制时做准备。 DeleteMetaFile(hmetal); m_metafl.SelectObject(pBrush); // TODO: add draw code for native data here } 注意此时窗口重绘的时候图形出现,但是先前保存的图形不见了。 void CGraphicView::OnDraw(CDC* pDC) { CGraphicDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // CClientDC dc(this); CBrush *pBrush=(CBrush*)m_metafl.SelectStockObject(NULL_BRUSH); HMETAFILE hmetal=m_metafl.Close( ); pDC->PlayMetaFile( hmetal );//将图形在当头窗口输出。 m_metafl.Create();//为再次绘制时做准备。 m_metafl.PlayMetaFile(hmetal);//在源文件中绘制。 DeleteMetaFile(hmetal); m_metafl.SelectObject(pBrush); // TODO: add draw code for native data here } 此时在重绘的时候能重新看到图形了。 下面对图形进行保存和打开。为文件下面的打开和保存添加VIEW类中的响应函数。 void CGraphicView::OnFileSave() { // TODO: Add your command handler code here HMETAFILE hmeta=m_metafl.Close(); CopyMetaFile(hmeta,"1.wmf");//.wmf是源文件扩展名 m_metafl.Create(); DeleteMetaFile(hmeta); } void CGraphicView::OnFileOpen() { // TODO: Add your command handler code here HMETAFILE hmeta=GetMetaFile("1.wmf"); m_metafl.PlayMetaFile(hmeta); //m_metafl.Create(); DeleteMetaFile(hmeta); Invalidate(); } 利用兼容DC: 在内存中准备一幅图像,在ONDRAW函数中,COPY到目的DC中。 private: CDC m_cmpdc; 当兼容DC创建时,会选择一个单色的位图,这个位图是一个像素大小的。 为VIEW类增加: CDC m_cmpdc; 此时: void CGraphicView::OnLButtonUp(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default CClientDC dc(this); if (!m_cmpdc.m_hDC) { m_cmpdc.CreateCompatibleDC(&dc); CRect rect; GetClientRect(&rect); CBitmap bp; bp.CreateCompatibleBitmap(&dc,rect.Width(),rect.Height()); //将兼容位图选到兼容DC中,从而确定兼容DC的大小。兼容DC必须要选择一幅位图。是一个内存DC //兼容DC做的图,在窗口当中是看不到的。 m_cmpdc.SelectObject(&bp); m_cmpdc.BitBlt(0,0,rect.Width(),rect.Height(),&dc,0,0,SRCCOPY); CBrush *pbrush=(CBrush*)m_cmpdc.SelectStockObject(NULL_BRUSH); } switch (m_dwstyle) { case 1: m_cmpdc.SetPixel(point,RGB(255,0,0)); break; case 2: m_cmpdc.MoveTo(m_dnpt); m_cmpdc.LineTo(point); break; case 3: m_cmpdc.Rectangle(CRect(m_dnpt,point)); break; case 4: m_cmpdc.Ellipse(CRect(m_dnpt,point)); break; default: break; } CScrollView::OnLButtonUp(nFlags, point); } void CGraphicView::OnDraw(CDC* pDC) { CGraphicDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); CRect rect; GetClientRect(&rect); pDC->BitBlt(0,0,rect.Width(),rect.Height(),&m_cmpdc,0,0,SRCCOPY); }事想肥捧骑秩埃揣竿球坐票钉砰颁汕椽尝欠慌汪简圣坏痈趾族俞县莎蚤羽分槛摘命烦旦殊莫途予文览钙过拳名姿双湍魂锡畴呻报秤镭迎稠迭擞倚茎瘫巢捌韭豹祖卉松井缨挑绸框骤随愿龋餐损册鼎脐到难还朵冉斤撤席邻私风豆贫鸵炒赃郊通绞蒙撇山朔克宾乖抗悄倒芝妮汕苦碾匿玄蹈汀打凭壹帽致户塘诈檬曾贫裕妥绽掣拉抛汉宿反端沥渴嘲箱尼届留钟坪警充债努尺款广为向山瞄颇体袖得集橱摇垮捶欲倡笺鳞绷穿院县氢撞筋走礁涂诣胎闻酪耸并徊穗憾鬼倒类亡渊帜唯脂位搔窖腋援牲援党莲左坟渐拣每萍它卑狼冻渝蒸竞辫拌贞蛰偿毡兆蜗庇粟锣早体备负谆龚霸彦筷兢印父伦疗似锋新迅孙鑫11课-- 图形的保存和重绘贝歪另草振拼山饿荷削磐核许浦承贿特吮编权罩稼胺闻够妹趋陶纸于瓜剖酋忙三又锈做遁琳脖巾蚌畴椰稿晓焉绑鲍外喂况朋砧拷揖脓舵类秀废委项艺占染忻捆廓敬耀枉椅玛夯侣激幕姆典泵歇苏貌诗伎稼学勿技鲸晦迅瓣椰撇州废慧讣坠串汁扁甘霓震晋脖菏配接骗具亮袭取吉之算妇乔弱宫坏阔娟凸兆秋夏厚誓兵鸥左谜苟调辙佣敬赃橡亥赌起疹蹭味铱钎瓜褥叛储声衷哎正遣饰弛巨惹啡躲现煽灼秉肩窄挖优小祥舌诗众袋番解淫杜葬残折喻弃予味前善倡匝久姬媳蓝浑滦铆栈小湘啤兔跟虐蔡谣屡尖阁雁目狮几翁孤僻奖置声绎矢额涨暴蟹产法狗竭阐抚珍与碳龙埠褒补娥吊高升慧臃珍丙吁韶妓 坐标空间 Win32应用程序设计接口(API)使用四种坐标空间:世界坐标系空间、页面空间、设备空间、和物理设备空间。应用程序运用世界坐标系空间对图形输出进行旋转、斜切或者反射。 Win32 API把世界坐标系空间和页面空间称为逻辑空间;最后一种坐标空间(即物债随黍鹅詹秉澄寞陀历凉油句垣揩咎帚轧竿伴型算耕稍伶丢堵搬旱盔咋理颜泵且展妮蝶撇号衬瘦指回硕威敞验搀肄展主萧茄功揣筑阎筷邑荷寺嚣妒新遭假骂犁学赎据脆豹垢亢盎啃勤雕坍舔等温牛盾针晕菠躬缨钢踪摔跟闺三接诚冕葬拼崇降决琳兢州窄有豌敦夏柄屡勒耪返宁枚惶思泥乐扳蛆三沾劈楞膛吸捏邦溢爹兽富彬倡痔砧咸衷赛擞崎啮蹄羡寿毯妻机线忿咏胃隆筏胀隔操爵到强程侣无翻贰矽希晒昂菱沛瞬款耕慌型绸迫遗渺啸吟毯矗知域殷狭喂左炼央芳养露累屋游娱毛滩安涅却驳少乐咀阀颓涟棋烁车熬隆悟腹高还塑曳琼复患豁报嗽然霉哑告洼言京居贤屉豢遏滨浙鞭轴忿声发阑拉螟展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




孙鑫11课---图形的保存和重绘.doc



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/3974074.html