亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? g2_ps.c

?? ViennaRNA-1.6.1
?? C
字號:
/*******************************************************************************  Copyright (C) 1998-2001  Ljubomir Milanovic & Horst Wagner**  This file is part of the g2 library****  This library is free software; you can redistribute it and/or**  modify it under the terms of the GNU Lesser General Public**  License as published by the Free Software Foundation; either**  version 2.1 of the License, or (at your option) any later version.****  This 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**  Lesser General Public License for more details.****  You should have received a copy of the GNU Lesser General Public**  License along with this library; if not, write to the Free Software**  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA******************************************************************************/#include <stdio.h>#include <stdlib.h>#include <stdarg.h>#include <limits.h>#include <math.h>#include <string.h>#include "g2.h"#include "g2_device.h"#include "g2_util.h"#include "g2_config.h"#include "g2_PS.h"#include "g2_PS_P.h"#include "g2_PS_funix.h"#include "g2_PS_definitions.h"static int N_PS=0;static g2_PS_device *g2_PS_dev=NULL;/** * \ingroup physdev * \defgroup PS PostScript *//* * * Attach generic PS device * */G2L int g2_open_PS_generic(const char *file_name,	       enum g2_PS_paper paper,	       enum g2_PS_orientation orientation,		   enum g2_PS_format format,		   long width,		   long height){    g2_PS_device *psout=NULL;    int pid=-1, i;    int vid;    FILE *fp;    if((fp=fopen(file_name, "w"))==NULL) {	fprintf(stderr, "g2_attach_PS: Error! Can not open file '%s'\n",		file_name);	return -1;    }        if(g2_PS_dev==NULL) {	g2_PS_dev=g2_malloc(sizeof(g2_PS_device));	N_PS=1;					  /* first PS device */	psout=&g2_PS_dev[N_PS-1];	pid=0;    } else {	for(i=0;i<N_PS;i++)			  /* find free place */	    if(g2_PS_dev[i].fp==NULL) {		psout=&g2_PS_dev[i];		pid=i;		break;	    }	if(i==N_PS) {				  /* free place not avail. */	    N_PS++;	    g2_PS_dev=g2_realloc(g2_PS_dev,				 sizeof(g2_PS_device)*N_PS);	    psout=&g2_PS_dev[N_PS-1];	    pid=N_PS-1;	}    }    vid = g2_register_physical_device(pid, NULL,				      g2_DoubleCoor, g2_PS_funix,				      1.0, 1.0,				      0.0, 0.0);    psout->fp=fp;			      /* init PostScript structures */    psout->paper=paper;    psout->orient=orientation;    psout->format=format;    psout->width=width;    psout->height=height;    psout->inks=NULL;    psout->N_ink=0;    psout->pen=0;    psout->page_counter=0;    psout->bbox = 0;	    g2_PS_write_file_header(psout);        g2_PS_set_line_width(pid, NULL, 0.0);    g2_PS_set_font_size(pid, NULL, 12.0);					    /* g2 settings */    g2_allocate_basic_colors(vid);    g2_pen(vid, 1);        return vid;}/** * * Create a PS device. * * \param file_name postscript file name * \param paper paper type, see ::g2_PS_paper and \ref appendix Appendix * \param orientation paper orientation, see ::g2_PS_orientation * * \return physical device id * * \ingroup PS */G2L int g2_open_PS(const char *file_name,	       enum g2_PS_paper paper,	       enum g2_PS_orientation orientation){    return g2_open_PS_generic(file_name,paper,orientation,g2_PS_PostScript,0,0);}/** * * Create an encapsulated PS device. * * \param file_name postscript file name * * \return physical device id * * \ingroup PS */G2L int g2_open_EPSF(const char *file_name){    return g2_open_PS_generic(file_name,0,0,g2_PS_EPSF,0,0);}/** * * Create an encapsulated PS device with clipping. * * \param file_name postscript file name * \param width clipping region width * \param height clipping region height * * \return physical device id * * \ingroup PS */G2L int g2_open_EPSF_CLIP(const char *file_name,			long width, long height){    return g2_open_PS_generic(file_name,0,0,g2_PS_EPSF_CLIP,width,height);}/* * *  Write header for postscript file * */int g2_PS_write_file_header(g2_PS_device *ps){    int i;    if (ps->format == g2_PS_PostScript)	{	    fprintf(ps->fp,"%%!PS-Adobe-2.0\n");	    switch(ps->orient) 		{		  case g2_PS_land:		    fprintf(ps->fp,"%%%%Orientation: Landscape\n");		    break;		  case g2_PS_port:		    fprintf(ps->fp,"%%%%Orientation: Portrait\n");		    break;		}	}    else if (ps->format == g2_PS_EPSF_CLIP)    {	fprintf(ps->fp,"%%!PS-Adobe-3.0 EPSF-2.0\n");	fprintf(ps->fp,"%%%%BoundingBox: 0 0 %ld %ld\n",ps->width,ps->height);    }    else if (ps->format == g2_PS_EPSF)    {	fprintf(ps->fp,"%%!PS-Adobe-3.0 EPSF-2.0\n");	fprintf(ps->fp,"%%%%BoundingBox: (atend)\n");    }	    fprintf(ps->fp,"%%%%Creator: g2 %s\n", G2_VERSION);    fprintf(ps->fp, "%%%%EndComments\n");        if (ps->format == g2_PS_EPSF_CLIP)    {	fprintf(ps->fp,"0 0 moveto\n");	fprintf(ps->fp,"0 %ld rlineto\n",ps->height);	fprintf(ps->fp,"%ld 0 rlineto\n",ps->width);	fprintf(ps->fp,"0 %ld rlineto\n",-ps->height);	fprintf(ps->fp,"closepath\n");	fprintf(ps->fp,"clip\n");    }        for(i=0;g2_PS_operators[i]!=NULL;i++)	fputs(g2_PS_operators[i], ps->fp);        fprintf(ps->fp,"newpath\n");    if((ps->orient==g2_PS_land) && (ps->format == g2_PS_PostScript))	fprintf(ps->fp,"%d 0 translate 90 rotate\n",		g2_PS_paper_size[ps->paper][0]);    fputs("%%PageTrailer\n%%Page: 1 1\n", ps->fp);        return 0;}/* * *    Add circle at (x,y) of dimension size to bounding box * */void g2_PS_bbox_add(g2_PS_device *ps,double x,double y,double size)	{	if (ps->bbox == 0) /* bbox is empty */		{		ps->x1=x-size;		ps->x2=x+size;		ps->y1=y-size;		ps->y2=y+size;		ps->bbox=1;		return;		}	if (ps->x1 > x-size)		ps->x1=x-size;	else if (ps->x2 < x+size)		ps->x2=x+size;	if (ps->y1 > y-size)		ps->y1=y-size;	else if (ps->y2 < y+size)		ps->y2=y+size;	return;	}/* * *    Delete PS device * */int g2_PS_delete(int pid, void *pdp){    g2_PS_device *ps=&g2_PS_dev[pid];	fprintf(ps->fp,"\nshowpage\n");    fprintf(ps->fp,"%%%%PageTrailer\n");    fprintf(ps->fp,"%%%%EndPage\n");	fprintf(ps->fp,"%%%%Trailer\n");	if (ps->format == g2_PS_EPSF)		{		fprintf(ps->fp,"%%%%BoundingBox: %d %d %d %d\n",				(int)floor(ps->x1),(int)floor(ps->y1),				(int)ceil(ps->x2),(int)ceil(ps->y2));		}    fprintf(ps->fp,"%%%%EOF\n");	fclose(ps->fp);    free(ps->inks);        ps->fp=NULL;				  /* free place */        return 0;}int g2_PS_ink(int pid, void *pdp,	      double red, double green, double blue){    g2_PS_device *ps=&g2_PS_dev[pid];    ps->N_ink++;    if(ps->inks==NULL)	ps->inks=(g2_PS_inks *)g2_malloc(ps->N_ink*					  sizeof(g2_PS_inks));    else	ps->inks=(g2_PS_inks *)g2_realloc((void *)ps->inks,					   ps->N_ink*					   sizeof(g2_PS_inks));        ps->inks[ps->N_ink-1].r=red;    ps->inks[ps->N_ink-1].g=green;    ps->inks[ps->N_ink-1].b=blue;     return ps->N_ink-1;}int g2_PS_pen(int pid, void *pdp, int color){    g2_PS_device *ps=&g2_PS_dev[pid];    if(color>=ps->N_ink || color<0)	return -1;    fprintf(ps->fp,"%.4g %.4g %.4g setrgbcolor\n",	    (double)ps->inks[color].r,	    (double)ps->inks[color].g,	    (double)ps->inks[color].b);    ps->pen=color;    return 0;}int g2_PS_set_background(int pid, void *pdp, int color){    return 0;}int g2_PS_clear_palette(int pid, void *pdp){    g2_PS_device *ps=&g2_PS_dev[pid];    free((void *)ps->inks);    ps->N_ink=0;    ps->inks=NULL;    return 0;}int g2_PS_set_line_width(int pid, void *pdp, double w){    g2_PS_device *ps=&g2_PS_dev[pid];    fprintf(ps->fp,"%.4g setlinewidth\n", w);	ps->w = w;    return 0;}int g2_PS_set_dash(int pid, void *pdp, int N, double *data){    g2_PS_device *ps=&g2_PS_dev[pid];    int i;    fprintf(ps->fp, "[ ");    for(i=0;i<N;i++)	if(data[i]>0.0)	    fprintf(ps->fp, "%.4g ", data[i]);    fprintf(ps->fp, "] 0 setdash\n");    return 0;}int g2_PS_set_font_size(int pid, void *pdp, double size){    g2_PS_device *ps=&g2_PS_dev[pid];    if(size<=0.0)	return -1;    fprintf(ps->fp,"%s findfont %.4g scalefont setfont\n", g2_PSFont, size);    ps->size = size;    return 0;}int g2_PS_clear(int pid, void *pdp){    g2_PS_device *ps=&g2_PS_dev[pid];    fprintf(ps->fp, "gsave showpage\n");    fprintf(ps->fp, "%%%%PageTrailer\n%%%%EndPage\n");    fprintf(ps->fp, "%%%%Page: %d %d\ngrestore newpath\n",	    ps->page_counter+1, ps->page_counter+1);    ps->page_counter++;    return 0;}int g2_PS_flush(int pid, void *pdp){    g2_PS_device *ps=&g2_PS_dev[pid];    fflush(ps->fp);    return 0;}int g2_PS_plot(int pid, void *pdp, double x, double y){    g2_PS_device *ps=&g2_PS_dev[pid];    fprintf(ps->fp,"%.4g %.4g P\n", x, y);	g2_PS_bbox_add(ps,x,y,1);    return 0;}int g2_PS_line(int pid, void *pdp, double x1, double y1, double x2, double y2){    g2_PS_device *ps=&g2_PS_dev[pid];    fprintf(ps->fp,"%.4g %.4g M %.4g %.4g L St\n",	    x1, y1, x2, y2);	g2_PS_bbox_add(ps,x1,y1,ps->w);	g2_PS_bbox_add(ps,x2,y2,ps->w);    return 0;}int g2_PS_poly_line(int pid, void *pdp, int N, double *points){    g2_PS_device *ps=&g2_PS_dev[pid];    int i;    fprintf(ps->fp,"%.4g %.4g M\n", points[0], points[1]); 	g2_PS_bbox_add(ps,points[0], points[1],ps->w);    for(i=2;i<2*N;i+=2)		{		fprintf(ps->fp, "%.4g %.4g L\n", points[i], points[i+1]);		g2_PS_bbox_add(ps,points[i], points[i+1],ps->w);		}    fprintf(ps->fp, "St\n");    return 0;}int g2_PS_polygon(int pid, void *pdp, int N, double *points){    g2_PS_device *ps=&g2_PS_dev[pid];    int i;    fprintf(ps->fp,"%.4g %.4g M\n",points[0], points[1]); 	g2_PS_bbox_add(ps,points[0], points[1],ps->w);    for(i=2;i<2*N;i+=2)		{		fprintf(ps->fp, "%.4g %.4g L\n", points[i], points[i+1]);		g2_PS_bbox_add(ps,points[i], points[i+1],ps->w);		}    fprintf(ps->fp, "%.4g %.4g L St\n", points[0], points[1]);    return 0;}int g2_PS_filled_polygon(int pid, void *pdp, int N, double *points){    g2_PS_device *ps=&g2_PS_dev[pid];    int i;    fprintf(ps->fp,"newpath %.4g %.4g M\n",points[0], points[1]); 	g2_PS_bbox_add(ps,points[0], points[1],ps->w);    for(i=2;i<2*N;i+=2)		{		fprintf(ps->fp, "%.4g %.4g L\n", points[i], points[i+1]);		g2_PS_bbox_add(ps,points[i], points[i+1],ps->w);		}    fprintf(ps->fp, "%.4g %.4g L fill St\n", points[0], points[1]);    return 0;}int g2_PS_rectangle(int pid, void *pdp,		    double x1, double y1, double x2, double y2){    g2_PS_device *ps=&g2_PS_dev[pid];    fprintf(ps->fp,"%.4g %.4g %.4g %.4g R\n",	    x2, y2, x1, y1);	g2_PS_bbox_add(ps,x1,y1,ps->w);	g2_PS_bbox_add(ps,x2,y2,ps->w);    return 0;}int g2_PS_filled_rectangle(int pid, void *pdp,			   double x1, double y1, double x2, double y2){    g2_PS_device *ps=&g2_PS_dev[pid];    fprintf(ps->fp,"%.4g %.4g %.4g %.4g FR\n",	    x2, y2, x1, y1);	g2_PS_bbox_add(ps,x1,y1,ps->w);	g2_PS_bbox_add(ps,x2,y2,ps->w);    return 0;}int g2_PS_triangle(int pid, void *pdp,		   double x1, double y1,		   double x2, double y2,		   double x3, double y3){    g2_PS_device *ps=&g2_PS_dev[pid];    fprintf(ps->fp,"%.4g %.4g %.4g %.4g %.4g %.4g T\n",	    x1,y1,x2,y2,x3,y3);	g2_PS_bbox_add(ps,x1,y1,ps->w);	g2_PS_bbox_add(ps,x2,y2,ps->w);	g2_PS_bbox_add(ps,x3,y3,ps->w);    return 0;}int g2_PS_filled_triangle(int pid, void *pdp,			 double x1, double y1,			 double x2, double y2,			 double x3, double y3){    g2_PS_device *ps=&g2_PS_dev[pid];    fprintf(ps->fp,"%.4g %.4g %.4g %.4g %.4g %.4g FT\n",	    x1,y1,x2,y2,x3,y3);	g2_PS_bbox_add(ps,x1,y1,ps->w);	g2_PS_bbox_add(ps,x2,y2,ps->w);	g2_PS_bbox_add(ps,x3,y3,ps->w);    return 0;}int g2_PS_arc(int pid, void *pdp,	      double x, double y,	      double r1, double r2,	      double a1, double a2){    g2_PS_device *ps=&g2_PS_dev[pid];    if(a1==a2) {	a1=0;	a2=360;    }    fprintf(ps->fp,"%.4g %.4g %.4g %.4g %.4g %.4g A\n",	    a1, a2, r1, r2, x, y);	g2_PS_bbox_add(ps,x+r1,y+r2,ps->w);	g2_PS_bbox_add(ps,x-r1,y-r2,ps->w);    return 0;}int g2_PS_filled_arc(int pid, void *pdp,		     double x, double y,		     double r1, double r2,		     double a1, double a2){    g2_PS_device *ps=&g2_PS_dev[pid];    if(a1==a2) {	a1=0;	a2=360;    }    fprintf(ps->fp,"%.4g %.4g %.4g %.4g %.4g %.4g FA\n",	    a1, a2, r1, r2, x, y);	g2_PS_bbox_add(ps,x+r1,y+r2,ps->w);	g2_PS_bbox_add(ps,x-r1,y-r2,ps->w);    return 0;}int g2_PS_ellipse(int pid, void *pdp,		  double x, double y,		  double r1, double r2){    g2_PS_device *ps=&g2_PS_dev[pid];    fprintf(ps->fp,"0 360 %.4g %.4g %.4g %.4g A\n",	    r1, r2, x, y);	g2_PS_bbox_add(ps,x+r1,y+r2,ps->w);	g2_PS_bbox_add(ps,x-r1,y-r2,ps->w);    return 0;}  int g2_PS_filled_ellipse(int pid, void *pdp,			 double x, double y,			 double r1, double r2){    g2_PS_device *ps=&g2_PS_dev[pid];    fprintf(ps->fp,"0 360 %.4g %.4g %.4g %.4g FA\n",	    r1, r2, x, y);	g2_PS_bbox_add(ps,x+r1,y+r2,ps->w);	g2_PS_bbox_add(ps,x-r1,y-r2,ps->w);    return 0;}  int g2_PS_draw_string(int pid, void *pdp,		      double x, double y, const char *text){    g2_PS_device *ps=&g2_PS_dev[pid];    fputc('(', ps->fp);    for(;*text!='\0';text++)	switch(*text) {	  case '(':	    fputs("\\(", ps->fp);	    break;	  case ')':	    fputs("\\)", ps->fp);	    break;	  case '\\':	    fputs("\\\\", ps->fp);	    break;	  default:	    fputc(*text, ps->fp);	    break;	}    fprintf(ps->fp,") %.4g %.4g S\n", x, y);	g2_PS_bbox_add(ps,x,y,ps->size);	g2_PS_bbox_add(ps,x+ps->size*strlen(text),y,ps->size);    return 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产日韩一级二级三级| 精品国产亚洲在线| 日本在线不卡视频| 精品国产免费人成电影在线观看四季 | 国产精品久久久久一区| 91黄色激情网站| 精品一区二区免费视频| 国产亚洲视频系列| 欧美日韩www| 国内久久精品视频| 亚洲乱码日产精品bd| 欧美高清激情brazzers| 国产成人午夜电影网| 麻豆精品视频在线观看免费| 久久免费看少妇高潮| 在线精品亚洲一区二区不卡| 国内精品免费在线观看| 亚洲一区二区在线观看视频| 国产色综合久久| 欧美日韩和欧美的一区二区| 国产成人亚洲综合a∨猫咪| 一区二区三区在线视频观看58| 日韩欧美国产综合一区| 91原创在线视频| 精品一区二区免费在线观看| 一片黄亚洲嫩模| 久久先锋影音av鲁色资源| 欧美日韩一区精品| 国产精品亚洲视频| 亚洲一卡二卡三卡四卡五卡| 亚洲精品在线观看网站| 精品视频1区2区| www.视频一区| 狠狠色狠狠色综合日日91app| 亚洲一区二区三区四区在线| 综合在线观看色| 久久影音资源网| 日韩免费观看高清完整版 | 精品视频一区三区九区| 成人av免费在线观看| 麻豆久久久久久| 亚洲成人黄色小说| 亚洲欧美在线观看| 中文字幕精品一区二区精品绿巨人| 91精品国产91热久久久做人人| 在线观看亚洲精品| 91丨九色porny丨蝌蚪| 成人av网站在线| 国产麻豆欧美日韩一区| 亚洲国产精品精华液网站| 国产精品大尺度| 自拍视频在线观看一区二区| 国产欧美一区二区三区沐欲| 久久免费午夜影院| 久久欧美中文字幕| 精品99999| 精品国产一区二区三区忘忧草| 91麻豆精品国产自产在线| 91亚洲精品久久久蜜桃网站 | 久久综合九色综合97婷婷| 在线精品视频一区二区三四| 色婷婷综合五月| 色乱码一区二区三区88| 色八戒一区二区三区| 色妞www精品视频| 欧美精品一区二| 精品国产露脸精彩对白 | 99久久精品国产麻豆演员表| 成人网在线播放| 99精品久久只有精品| 91一区二区三区在线观看| 97se亚洲国产综合自在线| 国产精品一区二区视频| 99视频有精品| 欧美日韩免费一区二区三区| 在线观看中文字幕不卡| 欧美乱妇一区二区三区不卡视频| 5858s免费视频成人| 日韩一级精品视频在线观看| 精品不卡在线视频| 国产精品卡一卡二| 亚洲资源在线观看| 日韩高清不卡在线| 国产精品一区二区三区99| 国产精品综合二区| 99re免费视频精品全部| 精品视频一区二区不卡| 日韩精品中文字幕一区| 国产精品视频在线看| 国产精品系列在线| 亚洲自拍偷拍图区| 麻豆传媒一区二区三区| 成人在线一区二区三区| 在线免费精品视频| 精品国产自在久精品国产| 中文字幕亚洲在| 日韩黄色一级片| 成人免费的视频| 欧美日韩久久不卡| 国产欧美一区视频| 亚洲成a人v欧美综合天堂下载| 极品尤物av久久免费看| 91免费国产视频网站| 日韩欧美黄色影院| 日韩伦理免费电影| 麻豆国产精品一区二区三区 | 久久精品综合网| 亚洲一区在线看| 国产九色精品成人porny| 欧洲亚洲国产日韩| 欧美一区二区三区精品| 亚洲欧美一区二区在线观看| 亚洲成人av一区二区三区| 国产精品一级片在线观看| 欧美日韩综合不卡| 国产精品色哟哟网站| 久久国产精品露脸对白| 色妹子一区二区| 国产亚洲综合色| 日韩成人dvd| 在线观看国产一区二区| 国产欧美在线观看一区| 美女任你摸久久| 欧美三级电影网| 亚洲三级视频在线观看| 粉嫩aⅴ一区二区三区四区 | 日本午夜精品一区二区三区电影| 成人av在线播放网站| 日韩精品影音先锋| 性久久久久久久久| 91黄色免费看| 亚洲欧美另类久久久精品 | 久久99精品国产.久久久久 | 日韩高清欧美激情| 在线观看91精品国产入口| 国产精品久久久久久久久图文区| 美女mm1313爽爽久久久蜜臀| 欧美这里有精品| 亚洲欧洲成人自拍| 久久99国内精品| 制服丝袜亚洲网站| 午夜成人免费视频| 欧美日韩视频不卡| 亚洲成在人线免费| 欧美影视一区二区三区| 亚洲欧美电影一区二区| 成人网在线播放| 中文字幕成人av| 成人黄色国产精品网站大全在线免费观看| www精品美女久久久tv| 麻豆成人在线观看| 欧美一区国产二区| 亚洲午夜日本在线观看| 欧美色精品在线视频| 亚洲精品成人a在线观看| 欧洲一区二区av| 性感美女久久精品| 欧美一区二区三区四区五区 | 亚洲国产成人av网| 欧美日韩一区二区三区在线看 | 精品久久一区二区| 九色综合国产一区二区三区| 精品国产一区二区三区四区四| 免费观看在线色综合| 日韩欧美国产一区二区三区 | 国产亚洲精品7777| 91色.com| 蜜臀av性久久久久蜜臀av麻豆| 久久综合狠狠综合久久激情| av高清不卡在线| 舔着乳尖日韩一区| 久久精品亚洲国产奇米99| 欧日韩精品视频| 国产一区二区三区电影在线观看 | 91福利区一区二区三区| 奇米影视在线99精品| 国产女人aaa级久久久级| 欧美日韩综合不卡| 高清不卡在线观看av| 亚洲电影在线播放| 国产亚洲精品久| 欧美日本免费一区二区三区| 国产99久久久国产精品免费看| 亚洲自拍另类综合| 国产午夜亚洲精品理论片色戒 | 国产色91在线| 欧美色区777第一页| 国产成人午夜高潮毛片| 午夜欧美视频在线观看| 中文成人综合网| 91精品在线一区二区| av不卡一区二区三区| 久久99精品久久久久久动态图| 夜夜嗨av一区二区三区网页| 久久久久久久久久美女| 欧美视频一区在线| 成人久久久精品乱码一区二区三区| 天天做天天摸天天爽国产一区| 国产精品成人免费| 欧美mv日韩mv国产|