ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

WinTpicコミュの【ドローソフト開発】

  • mixiチェック
  • このエントリーをはてなブックマークに追加
WinTpic に類似するドローソフトの開発を考えていますが,
あいにく,私はソフト開発をしたことがありません.

C,Java,Perl,Fortran,Basic

などは多少使ったことがありますが,基本的なことしか分かりません.

ドローソフトを作るのであれば,どのような言語が適しているか,詳しい方の意見をうかがえれば,と思います.

コメント(11)

「プラットフォームを選ばない」
「フリーである」
「オブジェクト指向」
という理由で,私の考えでは,Java が急浮上しています.
Java の勉強を始めました.

http://www015.upp.so-net.ne.jp/m_suda/java/

見ての通り素人ですので,詳しい方,何か助言があれば教えて下さい.

まだ,java.applet.Applet だけですが,java.applet.JApplet までしっかり勉強したいと思います.
↓ data.txt のファイルの中身

0
0
100
200
200
500
1000
20
0
0
100
100
↓ ReadData2.java のファイルの中身

/*
* ReadData2.java
* data.txt から一行ずつ整数型のデータを取り出して data[] に格納する.
* 4つのデータから picture 環境における一直線に変換する.
* 変換したファイルは line.tex
*/

import java.io.*;

public class ReadData2 {

public static void main(String[] args) {

String buff;
int data[] = new int[100];
int i = 0;
int last = 0;

try{
FileReader fr = new FileReader
("c:/documents/java/workspace/ReadData2/data.txt");
BufferedReader br = new BufferedReader(fr);
while( (buff = br.readLine()) != null ){
data[i] = Integer.valueOf(buff);
i++;
last = i;
}
br.close();
fr.close();

if(last < 4){
System.out.println("data.txt に4列以上のデータを書き込んで下さい.");
}
else{

last = last - last%4;
for(int j=0; j < last; j++){
System.out.print(data[j]+", ");
}
System.out.println("");
System.out.println("data.txt のデータを読み込みました.");

FileWriter fw = new FileWriter
("c:/documents/java/workspace/ReadData2/line.tex");
BufferedWriter bw = new BufferedWriter(fw);

int min_x = data[0];
int min_y = data[1];
int max_x = data[0];
int max_y = data[1];

for(int j=2; j <= last-2; j=j+2){
if(min_x > data[j]){
min_x = data[j];
}
if(min_y > data[j+1]){
min_y = data[j+1];
}
if(max_x < data[j]){
max_x = data[j];
}
if(max_y < data[j+1]){
max_y = data[j+1];
}
}

String w = String.valueOf(((double)(max_x - min_x))/100);
String h = String.valueOf(((double)(max_y - min_y))/100);

bw.write("\\unitlength 0.1in");
bw.newLine();
bw.write("\\begin{picture}(" + w + "," + h + ")");
bw.write("(" + String.valueOf((double)min_x/100) + "," +
String.valueOf((double)-max_y/100) + ")");
bw.newLine();
bw.write("\\special{pn 8}%");
bw.newLine();
for(int j=0; j < last-1; j=j+4){
bw.write("\\special{pa " + String.valueOf(data[j]) +
" " + String.valueOf(data[j+1]) + "}%" );
bw.newLine();
bw.write("\\special{pa " + String.valueOf(data[j+2]) +
" " + String.valueOf(data[j+3]) + "}%" );
bw.newLine();
bw.write("\\special{fp}%");
bw.newLine();
}
bw.write("\\end{picture}");
bw.newLine();

bw.close();
fw.close();
System.out.println("データを line.tex に変換しました.");

} // end of else

}
catch(FileNotFoundException e){
System.out.println("ファイルが開けません.");
}
catch(IOException e){
System.out.println("IO Error.");
}

}

}
↓ line.tex のファイルの中身

\unitlength 0.1in
\begin{picture}(10.0,5.0)(0.0,-5.0)
\special{pn 8}%
\special{pa 0 0}%
\special{pa 100 200}%
\special{fp}%
\special{pa 200 500}%
\special{pa 1000 20}%
\special{fp}%
\special{pa 0 0}%
\special{pa 100 100}%
\special{fp}%
\end{picture}
テキストの処理だけですが,picture 環境への変換ができます.
↓ test.tex の中身

\documentclass{jarticle}

\begin{document}

\input{line.tex}

\end{document}
試していただける方は,次に2箇所のディレクトリ名を
適当に読み替えて下さい.

FileReader fr = new FileReader
("c:/documents/java/workspace/ReadData2/data.txt");

FileWriter fw = new FileWriter
("c:/documents/java/workspace/ReadData2/line.tex");
アプレットではなく,アプリケーションでの開発に転向.
ジャバ・デザインパターンのうち,Command パターン,Mediator パターン,
Memento パターン,Template Method パターンを利用します.
参考図書

「Javaデザインパターン徹底攻略」
日立ソフトウェアエンジニアリングインターネットビジネス部

「Java実例プログラムによるデザインパターン入門講座
―Swingプログラムで体得する23のパターン」
ジェイムズ・W. クーパー、James W. Cooper、安藤 慶一
点と直線を描くアプリケーション.
MyApplication5
http://www015.upp.so-net.ne.jp/m_suda/java/MyApplication5.lzh

ボタンで点か直線かを選択できます.
直線はドラッグによって描画します.

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

WinTpic 更新情報

WinTpicのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング