| 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の例外処理(=始点) |
| 一辺の描画 |
| 多角形の輪郭線描画終了 |
| - |
| 画面を更新 |
| - |
| キー入力を促す |
| 入力待ち |
| - |
| グラフィックを終了 |
| - |
| いつも通り |
| |
|