JWW : 外部変形を調べてみました。(3)

外部変形3

今回は、外変の続きNO3です。
点を1つ指定したらどうなるのかを試してみたいと思います。

与えられたJWC_TEMP.txtのデータの読み方、加工方法

広告

AutoHotkeyで一行目の「hq」を削除

Loop, Read, JWC_TEMP.TXT, temp.txt
{
	if (A_LoopReadLine <> "hq")
		FileAppend, %A_LoopReadLine%`n
}
広告

hs レイヤーの縮尺

hs 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 100 1

New: C#で平行四辺形を描く

namespace JW_para
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //get Data
            string[] xy;
            double x, y;
            xy = get_XY();
            x = Convert.ToDouble(xy[1]);
            y = Convert.ToDouble(xy[2]);

            double A = Convert.ToDouble(textBox1.Text);
            double B = Convert.ToDouble(textBox2.Text);
            double C = Convert.ToDouble(textBox3.Text);

            double px = B / Math.Tan(Math.PI * C / 180);

            string p0=string.Format("{0} {1}",x ,y);
            string p1=string.Format("{0} {1}",x+px ,y+B);
            string p2=string.Format("{0} {1}",x+px+A ,y+B);
            string p3=string.Format("{0} {1}",x+A ,y);
            
            string s0 = p0+" "+p1;
            string s1 = p1+" "+p2;
            string s2 = p2+" "+p3;
            string s3 = p3+" "+p0;

            File.WriteAllText(@"JWC_TEMP.TXT", s0 + Environment.NewLine); //File上書き
            File.AppendAllText(@"JWC_TEMP.TXT", s1 + Environment.NewLine);
            File.AppendAllText(@"JWC_TEMP.TXT", s2 + Environment.NewLine);
            File.AppendAllText(@"JWC_TEMP.TXT", s3 + Environment.NewLine);

            //アプリケーションを終了する
            Application.Exit();

        }

        //座標取得 hp1
        private string[] get_XY()
        {
            string str = "";
            string[] arr;
            StreamReader sr = new StreamReader(@"temp.txt");
            while ((str = sr.ReadLine()) != null)
            {
                if (str.Contains("hp1"))
                {
                    arr = str.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
                    return arr;
                }
            }
            sr.Close();
            return null;
        }

    }
}

1点を指示して、図形を描く

AutoHotkeyで円・四角・3角

Batのコード:

REM  テスト用のMainBat
REM #jww
REM #cd
REM #0配置点を指示して下さい。(L)free (R)Read
REM #e

start /w G:\App\Autohotkey\AutoHotkeyU64.exe jww.ahk
Copy TEMP.txt JWC_TEMP.txt

REM #0配置点を指示して下さい。(L)free (R)Read

REM #0が点を指示しろという命令です。

start /w G:\App\Autohotkey\AutoHotkeyU64.exe jww.ahk

これが、AutoHotkyの「Jww.ahk」を動かせという命令です。

AutoHotkeyのコード:

FileDelete,TEMP.txt

i := 0
Loop, Read, JWC_TEMP.txt, TEMP.txt
{
	i++
	if(i<>1){ ;一行目削除
		FileAppend, %A_LoopReadLine%`n
	}
}

FileAppend, ci 0 0 30`n, TEMP.txt
;Rec
FileAppend, 30 -30 30 30`n, TEMP.txt
FileAppend, 30 30 -30 30`n, TEMP.txt
FileAppend, -30 30 -30 -30`n, TEMP.txt
FileAppend, -30 -30 30 -30`n, TEMP.txt
;Triangle
FileAppend, 0 30 -25.981 -15`n, TEMP.txt
FileAppend, -25.981 -15 25.981 -15`n, TEMP.txt
FileAppend, 25.981 -15 0 30`n, TEMP.txt

直角に曲がった線描く

:線を引く
@echo off
REM #jww
REM #e
(echo 0 0 50 0
echo 50 0 50 50 ) > jwc_temp.txt

複数行のEchoを( )でくくれば、すべてTxtに書き込みできました。

コメント

タイトルとURLをコピーしました