001: |
002: |
003: |
004: |
005: |
006: |
007: |
008: |
009: |
010: |
011: |
012: |
013: |
014: |
015: |
016: |
017: |
018: |
019: |
020: |
021: |
022: |
023: |
024: |
025: |
026: |
027: |
028: |
029: |
030: |
031: |
032: |
033: |
034: |
035: |
036: |
037: |
038: |
039: |
040: |
041: |
042: |
043: |
044: |
045: |
046: |
047: |
048: |
049: |
050: |
051: |
052: |
053: |
054: |
055: |
056: |
057: |
058: |
059: |
060: |
061: |
062: |
063: |
064: |
| /* drawpolyp.c */ |
/* cc -lX11 drawpolyp.c */ |
|
#include <stdio.h> |
|
#include "xwmy.c" |
|
int main(void) |
{ |
int i,n; |
int i1,i2; |
double xmin,xmax,ymin,ymax; |
double xd,yd; |
double x[101],y[101]; |
FILE *fp; |
|
fp = fopen("polyn.txt", "r"); |
fscanf(fp,"%d",&n); |
for (i=0; i<n; i++) { |
fscanf(fp,"%lf %lf",&x[i],&y[i]); |
} |
fclose(fp); |
|
xmin=x[0]; xmax=x[0]; |
ymin=y[0]; ymax=y[0]; |
for (i=1; i<n; i++) { |
if (xmin>x[i]) { xmin=x[i]; } |
if (xmax<x[i]) { xmax=x[i]; } |
if (ymin>y[i]) { ymin=y[i]; } |
if (ymax<y[i]) { ymax=y[i]; } |
} |
xd=(xmax-xmin)*0.2; |
yd=(ymax-ymin)*0.2; |
|
printf("n=%d\n",n); |
printf("xmin=%f : xmax=%f\n",xmin,xmax); |
printf("ymin=%f : ymax=%f\n",ymin,ymax); |
|
XW_Open(); |
|
DB_WindowNV(xmin-xd, ymin-yd, xmax+xd, ymax+yd); |
|
XW_SetColor(XW_Color_White); |
|
DB_DrawRect(DB_WX1, DB_WY1, DB_WX2, DB_WY2); |
|
XW_SetColor(XW_Color_Green); |
|
for (i=0; i<n; i++) { |
i1=i; |
i2=i+1; |
if (i2>n-1) { i2=0; } |
DB_DrawLine(x[i1], y[i1], x[i2], y[i2]); |
} |
|
XW_Refresh(); |
|
printf("Push key"); |
getchar(); |
|
XW_Close(); |
|
return 0; |
} |
| 001: |
002: |
003: |
004: |
005: |
006: |
007: |
008: |
009: |
010: |
011: |
012: |
013: |
014: |
015: |
016: |
017: |
018: |
019: |
020: |
021: |
022: |
023: |
024: |
025: |
026: |
027: |
028: |
029: |
030: |
031: |
032: |
033: |
034: |
035: |
036: |
037: |
038: |
039: |
040: |
041: |
042: |
043: |
044: |
045: |
046: |
047: |
048: |
049: |
050: |
051: |
052: |
053: |
054: |
055: |
056: |
057: |
058: |
059: |
060: |
061: |
062: |
063: |
064: |
| コメント:ファイル名 |
コメント:コンパイル方法 |
- |
いつも通り |
- |
同じフォルダにこのファイルが必要 |
- |
いつも通り |
- |
- |
- |
- |
- |
配列変数x、yの定義 |
FILE * 型の変数 |
- |
この名前のファイルを読み込みで開く |
ファイルからnの入力 |
- |
ファイルから配列変数への入力 |
- |
ファイルを閉じる |
- |
x、yの最小・最大値を求める |
- |
- |
- |
- |
- |
- |
- |
xの範囲の20% |
yの範囲の20% |
- |
頂点数nを表示する |
xの最小・最大値の表示 |
yの最小・最大値の表示 |
- |
グラフィックを使えるようにする。 |
- |
ワールド座標系のウインドウ設定 |
- |
線の色を 白 に設定 |
- |
四角形描画(始点X、始点Y、終点X、終点Y) |
- |
線の色を 緑 に設定 |
- |
多角形の輪郭線描画開始 |
描くべき要素Noを求める1 |
描くべき要素Noを求める2 |
終点+1の例外処理(=始点) |
一辺の描画 |
多角形の輪郭線描画終了 |
- |
画面を更新 |
- |
キー入力を促す |
入力待ち |
- |
グラフィックを終了 |
- |
いつも通り |
|
|