jw_cad 外部変形 - (1170) javaで罫線を引く -

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

 

javaで罫線を引く

:javaで罫線を引く
@echo off
if not exist %~dp0Keisen.class (
  for /f "delims=:" %%n in ('findstr /n "^#!" %0') do (
    more +%%n %0 > %~dpn0.java
    javac -encoding shift_jis %~dpn0.java
  )
)

set yp=8
set div=2
set sx=15
set sy=20

copy jwc_temp.txt myfiles > nul
java -Dfile.encoding=shift_jis -classpath %~dp0 Keisen > jwc_temp.txt
goto:eof

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

#!この次の行からプログラムを書いてください
import java.io.*;
import java.util.regex.Pattern;

class Keisen {
  public static void main(String args) {
    try {
      BufferedReader f = new BufferedReader(new FileReader("myfiles"));
      String line;
    double yp = Double.parseDouble(System.getenv("yp"));
    int div = Integer.parseInt(System.getenv("div"));
    double sx = Double.parseDouble(System.getenv("sx"));
    double sy = Double.parseDouble(System.getenv("sy"));
      double w, h;
      w = h = 0.0;
      int i, n;
      double x0, x1, y;
      while ( (line = f.readLine()) != null) {
        if (Pattern.compile("^hzs").matcher(line).find()) {
          String
hzs = line.split(" ");
          w = Double.parseDouble(hzs[1]);
          h = Double.parseDouble(hzs[2]);
          continue;
        }
      }
      f.close();
      System.out.println("bz");
      System.out.println("lc9");
      System.out.println("lt9");
      if (yp < 5.0) { yp = 5.0; }
      n = (int) ((h - 2 * sy) / yp);
      x0 = sx;
      x1 = x0 + w / div - sx;
      i = 0;
      while (i <= n) {
        y = yp * i + sy;
        System.out.printf("%.15f %.15f %.15f %.15f%n", x0, y, x1, y);
        i++;
      }
    } catch (IOException e) {
      System.out.println(e);
    }
  }
}