⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 region.h

📁 下载来的一个看图软件的源代码
💻 H
字号:
/* libwmf ("ipa/eps/region.h"): library for wmf conversion   Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources   The libwmf Library is free software; you can redistribute it and/or   modify it under the terms of the GNU Library General Public License as   published by the Free Software Foundation; either version 2 of the   License, or (at your option) any later version.   The libwmf Library is distributed in the hope that it will be useful,   but WITHOUT ANY WARRANTY; without even the implied warranty of   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU   Library General Public License for more details.   You should have received a copy of the GNU Library General Public   License along with the libwmf Library; see the file COPYING.  If not,   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,   Boston, MA 02111-1307, USA.  */static void wmf_eps_region_frame (wmfAPI* API,wmfPolyRectangle_t* poly_rect){	wmf_eps_t* ddata = WMF_EPS_GetData (API);	wmfStream* out = ddata->out;	wmfPen* set_pen = 0;	wmfPen pen;	wmfDC dc;	wmfD_Rect rect;	unsigned int i;	float linewidth;	float stretch;	WMF_DEBUG (API,"~~~~~~~~wmf_[eps_]region_frame");	if (out == 0) return;	if (poly_rect->count == 0) return;	set_pen = WMF_DC_PEN (poly_rect->dc);	pen = (*set_pen);	WMF_PEN_SET_STYLE  (&pen,PS_SOLID);	WMF_PEN_SET_ENDCAP (&pen,PS_ENDCAP_SQUARE);	WMF_PEN_SET_JOIN   (&pen,PS_JOIN_MITER);	WMF_DC_SET_PEN (&dc,&pen);	linewidth = (float) poly_rect->height;	stretch = poly_rect->width / poly_rect->height;	for (i = 0; i < poly_rect->count; i++)	{	rect.TL.x = poly_rect->TL[i].x - poly_rect->width  / 2;		rect.TL.y = poly_rect->TL[i].y - poly_rect->height / 2;		rect.BR.x = poly_rect->BR[i].x + poly_rect->width  / 2;		rect.BR.y = poly_rect->BR[i].y + poly_rect->height / 2;		wmf_stream_printf (API,out,"gsave %% wmf_[eps_]region_frame\n");		wmf_stream_printf (API,out,"%f 1 scale ",stretch);		wmf_stream_printf (API,out,"newpath %f %f moveto %f %f lineto %f %f lineto %f %f lineto closepath ",		         rect.TL.x / stretch,rect.TL.y,		         rect.TL.x / stretch,rect.BR.y,		         rect.BR.x / stretch,rect.BR.y,		         rect.BR.x / stretch,rect.TL.y);		eps_path_stroke (API,&dc,linewidth);		wmf_stream_printf (API,out,"grestore\n");	}}static void wmf_eps_region_paint (wmfAPI* API,wmfPolyRectangle_t* poly_rect){	wmf_eps_t* ddata = WMF_EPS_GetData (API);	unsigned int i;	wmfStream* out = ddata->out;	wmfD_Rect bbox;	WMF_DEBUG (API,"~~~~~~~~wmf_[eps_]region_paint");	if (out == 0) return;	if (poly_rect->count == 0) return;	if (TO_FILL (poly_rect))	{	for (i = 0; i < poly_rect->count; i++)		{	bbox.TL = poly_rect->TL[i];			bbox.BR = poly_rect->BR[i];			wmf_stream_printf (API,out,"gsave %% wmf_[eps_]region_paint\n");			wmf_stream_printf (API,out,"newpath %f %f moveto %f %f lineto %f %f lineto %f %f lineto closepath ",			         poly_rect->TL[i].x,poly_rect->TL[i].y,			         poly_rect->TL[i].x,poly_rect->BR[i].y,			         poly_rect->BR[i].x,poly_rect->BR[i].y,			         poly_rect->BR[i].x,poly_rect->TL[i].y);			eps_path_fill (API,poly_rect->dc,&bbox);			wmf_stream_printf (API,out,"grestore\n");		}	}}static void wmf_eps_region_clip (wmfAPI* API,wmfPolyRectangle_t* poly_rect){	wmf_eps_t* ddata = WMF_EPS_GetData (API);	unsigned int i;	wmfStream* out = ddata->out;	WMF_DEBUG (API,"~~~~~~~~wmf_[eps_]region_clip");	if (out == 0) return;	wmf_stream_printf (API,out,"grestore %% end clip\n");	wmf_stream_printf (API,out,"gsave %% begin clip\n");	if (poly_rect->count == 0) return;	wmf_stream_printf (API,out,"[\n");	for (i = 0; i < poly_rect->count; i++)	{	wmf_stream_printf (API,out,"%f %f %f %f\n",		         poly_rect->TL[i].x,		         poly_rect->TL[i].y,		         poly_rect->BR[i].x-poly_rect->TL[i].x,		         poly_rect->BR[i].y-poly_rect->TL[i].y);	}	wmf_stream_printf (API,out,"] rectclip\n");}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -