jw_cad 外部変形 - (990) gccで罫線を引く -

外部変形は データのやり取りをテキストファイルで行うので プログラム言語は 自由に選ぶことができます。図形は機能的かつシンプルなため、数多くのユーザーに受け入れられています。

 

gccで罫線を引く

:gccで罫線を引く
@echo off
if not exist %~dpn0.exe (
  for /f "delims=:" %%n in ('findstr /n "^#!" %0') do (
    more +%%n %0 > %~dpn0.c
    gcc -Os %~dpn0.c -o %~dpn0.exe -s
  )
)
set sx=15
set sy=20
set yp=8
set div=2
%~dpn0
goto:eof

REM #jww
REM #hp
REM #zs
REM #e

#!この次の行からプログラムを書いてください
#include "jw.h"
int main(void)
{
  FILE *f;
  char S_[256], *F[20];
  int i, n;
  double w, h, x0, x1, y;
  double sx, sy, yp;
  int div;
  sx = atof(getenv("sx"));
  sy = atof(getenv("sy"));
  yp = atof(getenv("yp"));
  div = atoi(getenv("div"));
  if (yp == 0) { yp = 5; }
  if (div == 0) { div = 2; }
  if ( (f = fopen("jwc_temp.txt", "r")) != NULL) {
    while (fgets(S_, 256, f) != NULL) {
      split(chomp(S_), F);
      if (strncmp(S_, "hzs", 3) == 0) { w = atof(F[1]); h = atof(F[2]); }
    }
  } else {
    exit(MISSING_JWC_TEMP_TXT);
  }
  fclose(f);
  f = fopen("jwc_temp.txt", "w");
  n = __int((h - sy * 2) / yp);
  x0 = sx;
  x1 = x0 + w / div - sx;
  fprintf(f, "bz\n");
  fprintf(f, "lc9\n");
  fprintf(f, "lt9\n");
  for (i = 0; i < n; i++) {
    y = yp * i + sy;
    fprintf(f, "%.15f %.15g %.15g %.15g\n", x0, y, x1, y);
  }
  fclose(f);
  return 0;
}