単調な図形を山ほど書かなければならない仕事に
出くわしてしまいました。
はじめはお絵かきソフトみたいなのを使っていた
のですが、必要な点の多さでかなんでかきれいに
印字できませんでした。
そこでこれはC言語なりなんなりをつこてpsでかく
しかないゾと思いました。
そこでお願いなのですが、
psまたはepsの手頃な参考書や参考サイト(日本語)
など教えていただけないでしょうか。
よろしくおねがいいたします。
--
村田 知生
--------------------------------------------
MURATA Tomoo
Crystal Property Engineerig
Dep. of Materials Sci. & Eng.
Kyoto University
E-mail:to...@blufunk.mtl.kyoto-u.ac.jp
--------------------------------------------
書籍は今はもう、アスキーからしか出ていないのではないでしょうか。
昔は何種類も出ていましたが。
本の名前、覚えてません。アスキーに聞いたらわかるかも。
ポストスクリプト関係の本、って。
すみません、あんまり役にたたなくて
中藤 正邦
happ...@osk.3web.ne.jp wrote:
>
> MURATA Tomoo wrote:
> > psまたはepsの手頃な参考書や参考サイト(日本語)
> > など教えていただけないでしょうか。
>
> 書籍は今はもう、アスキーからしか出ていないのではないでしょうか。
> 昔は何種類も出ていましたが。
> 本の名前、覚えてません。アスキーに聞いたらわかるかも。
> ポストスクリプト関係の本、って。
>
「PostScript リファレンス・マニュアル 第2版」
が少しまえに増刷されたとききました。
値段は \10,000- 前後だったと思います。
#手ごろかどうかはわかりませんが、参考書としては問題無いと思います。
--
///////////////////////////////////////////////////////
Yasuhiro Tanaka <yta...@morisawa.co.jp>
///////////////////////////////////////////////////////
あっさりプログラムを御紹介します。技術情報は gssm の久野先生に頂き、
コードは私が書きました。無許諾無償で自由に利用可、但し無保証です。
使い方は、始めに plots を呼び、終りに plote を呼ぶこと、線引きは plot
で行なうなど、懐かしの calcomp と同じです。その他はヘッダファイルのコ
メントを参照して下さい。
----------
* 作図用関数
以下は、各種グラフを ps 形式で作図するための関数群とヘッダーファイルで
ある。
(1) ヘッダーファイル "psplot.h"
---
FILE * plots(char * file, int left, int bottom, int right, int top);
/* initialize psplot for file and return file pointer (fpp) */
/* plotting area determind by left, bottom, right and top */
void width(FILE * fpp, double w);
/* set line width to w points */
void plot(FILE * fpp, double x, double y, int iplot);
/* line(iplot=1) or move(iplot=0) to (x, y) by unit of cm */
void psputs(FILE * fpp, double x, double y, double deg, int pt, char * s);
/* put string s from (x, y) to deg direction by point pt */
void psputi(FILE * fpp, double x, double y, double deg, int pt,
int c, int i);
/* put integer i by psputs, adjusting center(c='c') or right(c='r') */
void psputd(FILE * fpp, double x, double y, double deg, int pt,
int c, char *fmt, double d);
/* put double d by format fmt, other parameters are same as psputi */
void plote(FILE * fpp);
/* end psplot and close file */
---
(2) ps 作図関数 "psplot.c"
---
#include <stdio.h>
FILE * plots(char * file, int left, int bottom, int right, int top){
FILE * fpp;
if((fpp = fopen(file, "w")) == NULL) return NULL;
printf("¥nplot %s¥n", file);
fprintf(fpp, "%%!PS-Adobe-2.0 EPSF-1.2¥n");
fprintf(fpp, "%%%%Pages: 1¥n");
fprintf(fpp, "%%%%BoundingBox: %d %d %d %d¥n",
left, bottom, right, top);
fprintf(fpp, "%%%%DocumentFonts: Helvetica¥n");
fprintf(fpp, "%%%%EndComments¥n");
fprintf(fpp, "/hv10 /Helvetica findfont 10 scalefont def¥n");
fprintf(fpp, "/hv12 /Helvetica findfont 12 scalefont def¥n");
fprintf(fpp, "/hv14 /Helvetica findfont 14 scalefont def¥n");
fprintf(fpp, "/hv16 /Helvetica findfont 16 scalefont def¥n");
fprintf(fpp, "/hv18 /Helvetica findfont 18 scalefont def¥n");
fprintf(fpp, "/hv20 /Helvetica findfont 20 scalefont def¥n");
fprintf(fpp, "/hv22 /Helvetica findfont 22 scalefont def¥n");
fprintf(fpp, "/hv24 /Helvetica findfont 24 scalefont def¥n");
fprintf(fpp, "newpath¥n");
fprintf(fpp, "0 setlinewidth¥n");
return fpp;}
void width(FILE * fpp, double w){
fprintf(fpp, "closepath¥n stroke¥nnewpath¥n%f setlinewidth¥n", w);}
void plot(FILE * fpp, double x, double y, int iplot){
/* plot line by unit of cm */
static double point = 72 / 2.54;
/*printf("plot %f %f %d¥n", x, y, iplot);*/
if(iplot) fprintf(fpp, "%f %f lineto¥n", x * point, y * point);
else fprintf(fpp, "%f %f moveto¥n", x * point, y * point);}
void psputs(FILE * fpp, double x, double y, double deg, int pt, char * s){
static double point = 72.0 / 2.54;
static char hvfonts[8][5] = {"hv10", "hv12", "hv14", "hv16",
"hv18", "hv20", "hv22", "hv24"};
if(pt < 10) pt = 10; else if(pt > 24) pt = 24;
pt = (pt - 10) / 2;
fprintf(fpp, "%s setfont %f %f moveto %f rotate (%s) show %f rotate¥n",
hvfonts[pt], x * point, y * point, deg, s, -deg);}
void psputi(FILE * fpp, double x, double y, double deg, int pt,
int c, int i){
static double point = 72 / 2.54;
char s[256];
sprintf(s, "%d", i);
switch (c){
case 'c': x -= (5 / point) * strlen(s); break;
case 'r': x -= (10 / point) * strlen(s); break;}
psputs(fpp, x, y, deg, pt, s);}
void psputd(FILE * fpp, double x, double y, double deg, int pt,
int c, char *fmt, double d){
static double point = 72 / 2.54;
char s[256];
sprintf(s, fmt, d);
switch (c){
case 'c': x -= (5 / point) * strlen(s); break;
case 'r': x -= (10 / point) * strlen(s); break;}
psputs(fpp, x, y, deg, pt, s);}
void plote(FILE * fpp){
fprintf(fpp, "closepath¥n");
fprintf(fpp, "stroke¥n");
fprintf(fpp, "showpage¥n¥n");
fprintf(fpp, "%%%%Trailer¥n¥n");
fprintf(fpp, "%%%%EOF¥n");
fclose(fpp);}
---
Yuzo Seo
--
---
Yuzo Seo
少しフォローが少ないようですので。
Yasuhiro Tanaka <yta...@morisawa.co.jp> writes:
>
> どうも、田中ともうします。
>
> happ...@osk.3web.ne.jp wrote:
> >
> > MURATA Tomoo wrote:
> > > psまたはepsの手頃な参考書や参考サイト(日本語)
> > > など教えていただけないでしょうか。
> >
> > 書籍は今はもう、アスキーからしか出ていないのではないでしょうか。
> > 昔は何種類も出ていましたが。
> > 本の名前、覚えてません。アスキーに聞いたらわかるかも。
> > ポストスクリプト関係の本、って。
> >
>
> 「PostScript リファレンス・マニュアル 第2版」
> が少しまえに増刷されたとききました。
>
> 値段は \10,000- 前後だったと思います。
>
> #手ごろかどうかはわかりませんが、参考書としては問題無いと思います。
以下の本も読まれるとよいと思います。
Adobe Systems 著、野中浩一訳 『PostScriptチュートリアル & クックブック』
Adobe Systems 著、村松邦仁 訳 『PostScriptプログラム・デザイン』
まず店頭には出ていないと思いますので、注文してみてください。どちらもア
スキーからです。値段は、両方とも3000円ちょっとくらい。
英語版で良ければ、次の本も参考になるでしょう。
Glenn C. Reid 『Thinking in PostScript』 Addison Wesley 1990
すでに絶版になっている本ですが、作者のホームページ
から(無料で)取ってくることができます(PDF形式)。印刷すると450ページ
くらいになります。
--
八丁@和大.経済
> 初めて投稿します。
僕も始めての投稿です(^_^;)
> そこでこれはC言語なりなんなりをつこてpsでかく
> しかないゾと思いました。
> そこでお願いなのですが、
> psまたはepsの手頃な参考書や参考サイト(日本語)
> など教えていただけないでしょうか。
ps の説明のサイトではないのですが、
c 言語を概説するサイトに c を使って eps を出力するための
プログラミングに触れているものが在りました
http://http://www-cms.phys.s.u-tokyo.ac.jp/‾naoki/CIPINTRO/XLIB/xlib8.html
です。
ご参考になれば、幸いです
----
_/ _/ 東京大学理科一類二年 _/ _/
_/ _/ _/ 副田俊介 _/ _/ _/
_/ _/ sh...@e-mail.ne.jp _/ _/
"副田"すなわち"Shunsuke Soeda"さんより:
副田> こんばんは副田@東京大学です
> そこでこれはC言語なりなんなりをつこてpsでかく
> しかないゾと思いました。
> そこでお願いなのですが、
> psまたはepsの手頃な参考書や参考サイト(日本語)
> など教えていただけないでしょうか。
副田> ps の説明のサイトではないのですが、
副田> c 言語を概説するサイトに c を使って eps を出力するための
副田> プログラミングに触れているものが在りました
副田> http://http://www-cms.phys.s.u-tokyo.ac.jp/~naoki/CIPINTRO/XLIB/xlib8.html
副田> です。
まずはこれを書いた上で、
http://www.adobe.com/newsfeatures/postscript3/main.html
手前味噌ですが、
http://www.is.kochi-u.ac.jp/~95i44/postscript/postscript_qref.tar.gz
という中途半端なものもあります。
また、 Qt/C++(http://www.troll.no/) を使えば EPS や PS ファイ
ルを生成することができます。
その他、XFree86 にPrintServerみたいなのがあったような...。
--
--
岡 充 (Mitsuru Oka)
高知大学理学部情報科学科四回生
EMAIL: 95...@is.kochi-u.ac.jp