外部変形は データのやり取りをテキストファイルで行うので プログラム言語は 自由に選ぶことができます。図形は機能的かつシンプルなため、数多くのユーザーに受け入れられています。
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
)
)
%~dpn0
goto:eof
REM #jww
REM #1-%d 矩形の始点を指示してください
REM #2%d 対頂点を指示してください
REM #e
#!この次の行からプログラムを書いてください
#include "jw.h"
int main(void)
{
FILE *f;
char S_[256], *F[20];
double x1, y1, x2, y2, hk, d;
double x3, y3, x4, y4, co, si, ww, hh;
int r, g, b;
if ( (f = fopen("jwc_temp.txt", "r")) != NULL) {
while (fgets(S_, 256, f) != NULL) {
split(chomp(S_), F);
if (strncmp(S_, "hk", 2) == 0) hk = atof(F[1]);
if (strncmp(S_, "hp1", 3) == 0) { x1 = atof(F[1]); y1 = atof(F[2]); }
if (strncmp(S_, "hp2", 3) == 0) { x2 = atof(F[1]); y2 = atof(F[2]); }
}
} else {
exit(MISSING_JWC_TEMP_TXT);
}
fclose(f);
d = rad(hk);
co = cos(d);
si = sin(d);
ww = (x2 - x1) * co + (y2 - y1) * si;
hh =-(x2 - x1) * si + (y2 - y1) * co;
x3 = x1 + ww * co; y3 = y1 + ww * si;
x4 = x1 - hh * si; y4 = y1 + hh * co;
r = 0; g = 128; b = 128;
f = fopen("jwc_temp.txt", "w");
fprintf(f, "lc10 %d\n", r + 256 * g + 256 * 256 * b);
fprintf(f, "sl %.15g %.15g %.15g %.15g %.15g %.15g %.15g %.15g\n", x1, y1, x3, y3, x2, y2, x4, y4);
fclose(f);
return 0;
}