外部変形は データのやり取りをテキストファイルで行うので プログラム言語は 自由に選ぶことができます。図形は機能的かつシンプルなため、数多くのユーザーに受け入れられています。
gccで点データを確認する(pt)
:gccで点データを確認する(pt)
@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 #h1
REM #bz
REM #e
#!この次の行からプログラムを書いてください
#include "jw.h"
int main(void)
{
FILE *f, *g;
int i, n, NF, ptn = 0;
char S_[256], *F[20];
char SS[256];
char s[256], t[256];
double pt[101][5];
double hk, x, y, lx, ly;
char str[256];
if ( (f = fopen("jwc_temp.txt", "r")) != NULL) {
g = fopen("myfiles", "w");
while (fgets(S_, 256, f) != NULL) {
strcpy(SS, chomp(S_));
NF = split(SS, F);
if (strncmp(S_, "hq", 2) == 0) {
fprintf(g, "hd\n");
fprintf(g, "bz\n");
continue;
}
if (strncmp(S_, "hk", 2) == 0) {
hk = atof(F[1]);
continue;
}
if (strncmp(S_, "pt", 2) == 0 && (NF == 3 || NF == 6)) {
ptn++;
if (NF == 3) {
for (i = 1; i < 3; i++) { pt[ptn][i-1] = atof(F[i]); }
} else if (NF == 6) {
for (i = 1; i < 6; i++) { pt[ptn][i-1] = atof(F[i]); }
}
x = pt[ptn][0];
y = pt[ptn][1];
lx = cos(hk * PI / 180);
ly = sin(hk * PI / 180);
strcpy(str, "ようこそ ありがとう"); // str = "~"
fprintf(g, "cc4\n");
fprintf(g, "cn0 5 5 0.5 2\n");
fprintf(g, "ch %.15lg %.15lg %.15lg %.15lg \"%s\n", x, y, lx, ly, str);
fprintf(g, "%s\n", S_);
} else {
fprintf(g, "%s\n", S_);
}
}
} else {
exit(MISSING_JWC_TEMP_TXT);
}
fclose(g);
fclose(f);
remove("jwc_temp.txt");
rename("myfiles", "jwc_temp.txt");
return 0;
}