- 1 名前:JavaScriptは板違い、Web制作板をご利用ください。 [2007/01/20(土) 22:34:12 ]
- 【質問者へ】
回答者の便宜のため、以下の注意事項を遵守してください。 ・質問は【課題提示用テンプレ】を利用してください。 ・問題文は、出題されたまま全文を書いてください。 ・数学問題は「○×法でせよ」だけでなく、その数式、前提条件も説明してください。 ・JavaScriptは板違い、Web制作板をご利用ください。 ・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。 ・後から問題に付け足しするのはやめましょう。付け足しは作業を無駄にしがちです。 ・回答されたら動作報告を必ずしてください。 【課題提示用テンプレ】 【 課題 】与えられた課題文をそのまま書きます。 《必須》 【 形態 】1. Javaアプリケーション(main()で開始)/2. Applet/3. Servlet/ 4. 携帯(開発環境のver.必須)/5. その他(明記のこと) 《必ず選択》 【 GUI 】1. AWTのみ/2. Swing/3. SWT/4. 制限なし/ 5. その他(明記すること) 《GUIの課題の場合必ず選択》 【 期限 】提出期限、解答希望日を書きます。「できるだけ早く」はNG。 《必須》 【 Ver 】コンソールでjava -versionを実行し、その結果を貼ります。 《必須》 【 用語 】数学用語、専門用語の意味、説明を書きます。 《あれば必須》 【 補足 】課題について自分なりに補足する事、何か思う事があれば書きます。 丸投げでない場合は、途中までのソースとその経過報告、 質問点、疑問点を書きます(なるべく丸投げにしてください)。 【回答プログラムの掲載場所】 Java質問スレWiki www.wikiroom.com/java/ ソースポストネット sourcepost.sytes.net/ 【前スレ】 pc10.2ch.net/test/read.cgi/tech/1165167516/
- 654 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 10:44:14 ]
- >>651
pc11.2ch.net/test/read.cgi/tech/1173026128/929-930
- 655 名前:650 [2007/03/30(金) 11:59:25 ]
- >>653さん
早速のレスありがとうございます。 コンパイルして実行してみると入力とは関係無しに出力され結果が0になってしまいます。 どうすれば解決するでしょうか?
- 656 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 07:44:22 ]
- 【 課題 】 www.uploda.org/uporg758735.txt
3問ありますorz 【 形態 】Javaアプリケーション 【 GUI 】AWTのみ 【 期限 】4/4まで 【 Ver 】java version "1.6.0" Java(TM) SE Runtime Environment (build 1.6.0-b105) Java HotSpot(TM) Client VM (build 1.6.0-b105, mixed mode, sharing) 【 補足 】タートルグラフィックスの問題です。 java初心者で、期限に間に合わなそうなので依頼しにきました。 厚かましくも3問もありますが、よろしくお願いします!
- 657 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 09:32:24 ]
- >>651 Integer.parseInt(args[0]);
- 658 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 12:12:13 ]
- >>656
>java初心者で、期限に間に合わなそう 画面に点を打てて数学関数使える言語なら何でも出来るぞ。 精もない言い訳してる暇があったら高校やり直せ。 ゆとり世代じゃなけりゃ中学で基礎は習ってる。 入力を何処から拾うかと、亀をどう描くかと亀の移動速度が無いように見えるけど? >>657 初質でとうに解決済みだから見てないと思う。
- 659 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 13:44:31 ]
- 講師が居るおまいらが羨ましい。漏れは4ヶ月javaやってるが先生はずっと参考書。
一人でやってみて気付いたが、教えてくれる人が居るって恵まれてるよ。
- 660 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 16:35:15 ]
- 丸投げは何も教えてない件について。
それに気づくのは本人じゃなくて後に就職した先の先輩や上司・・・ しかも、講義の内容を理解してないからここで投げるという。 専門生オソロシスw >>659 このスレでタダで専門と同じ勉強が出来るじゃないか?
- 661 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 18:59:23 ]
- ここは教育機関じゃないし
そんな人間をそれに気づく前に就職させた側に問題がある フィルターをかける手間を惜しんでリスクを背負うことを選択した結果だ 採用担当と配置後の直接の職場とは違うだろうから使えなくて上司が泣くのはかわいそうだが そういうのは採用担当に使えんやつは採るなってねじこむしかないな
- 662 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 19:09:39 ]
- >>656
> Turtle は整数の座標でしか動けない。 とか > 亀の色を変えるのは,亀のkameColor 変数に代入します。線の色を変えるのには, > setColor メソッドを使います。 とかを見てると、整数座標系で動くタートルグラフィックスのライブラリが出題者から示されていて、 それを使ってプログラムを組めっていうことのように思えるんだけど。 もしそうなら、そのライブラリも提供してくれないと。 それとも、そういう風にタートルグラフィックスシステムも作れっていうことかな? でも、タートル色はフィールドへの代入で線色はセッターメソッドを使うとか、いやーんな仕様だね。
- 663 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 20:00:57 ]
- とりあえず質問者は亀さんグラフィックスライブラリをどっかにあげるべし。
指定されてる奴があるだろ? (kameColorでググるとそれらしいのが見つかるが)
- 664 名前:659 mailto:sage [2007/04/02(月) 20:33:52 ]
- でも先生が居たらいたで、漏れも出された課題をこういう所で丸投げしてるんだろうなぁ。
- 665 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 21:51:47 ]
- ほんと一瞬だな。javadocは概要ページとサブパッケージ指定しようぜ?
ttp://www.graco.c.u-tokyo.ac.jp/~masuhara/classes/cp1-2003/resources/api/index.html バイナリが見つからなかった。
- 666 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 22:06:35 ]
- タートルグラフィックスライブラリあったよ
ttp://bakkers.gr.jp/javabook/download.html kameColor・タートルしかヒントないのに俺の方が先にライブラリ晒すって質問者ドンだけ無能なんだ? さあ、ドキュメントもライブラリも揃った。 あとは誰かガンガレ!
- 667 名前:デフォルトの名無しさん [2007/04/03(火) 05:34:11 ]
- 【 課題 】Javaアプレットを使用し、ゲームを作りなさい。
ゲームの詳細・仕様は配布したイメージファイルを参考にしなさい。 配布イメージ:ttp://www20.tok2.com/home/sweatslip/cgi-bin/uploader/src/ss0218.jpg 【 形態 】2. Applet 【 GUI 】4. 制限なし 【 期限 】4月5日 【 Ver 】1.5.0_11 【 補足 】特にありません。丸投げでよろしくお願いします。
- 668 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 07:14:15 ]
- >>656
ライブラリのひどいソースを見て真面目にやる気が無くなった。 補足質問に対する依頼者の回答がまだないから本当にこれでいいのかどうかも分からないし。 とりあえず問題Aだけ、いい加減に書いた。B、Cはやる気ないから誰かよろしく。 入力は問題の入力仕様に従ったファイルをコマンドライン引数で指定。 ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29300
- 669 名前:656 mailto:sage [2007/04/03(火) 07:25:15 ]
- 色々と不備があり、大変申し訳ありません…
問題文に補足などがあったのも見落としていて、 ご迷惑おかけしました。 ライブラリは>>666ので合っています。 今後質問するときは不備がないよう気をつけます。 問題文の補足を加えたものを再度UPしましたので、 よろしくお願いします。。。 www.uploda.org/uporg760045.txt >>668 不備だらけの中、解答してくださって本当にありがとうございます。 参考にさせていただきます!
- 670 名前:668 mailto:sage [2007/04/03(火) 07:38:19 ]
- ごめん。視野角の定義を勘違いしていたみたい。
望遠鏡を覗いたときの中心から星の角度をθとすると,θ<φのときにだけ望遠鏡から見えるとする。 ってなってた。 //* このθが視野角φの半角より小さければ視野に収まっている * このθが視野角φより小さければ視野に収まっている //if (φ / 2 > Math.acos((sx[i] * tx + sy[i] * ty) / (Math.hypot(sx[i], sy[i]) * Math.hypot(tx, ty)))) { if (φ > Math.acos((sx[i] * tx + sy[i] * ty) / (Math.hypot(sx[i], sy[i]) * Math.hypot(tx, ty)))) { //double angle = Math.atan2(ty, tx) - φ / 2; double angle = Math.atan2(ty, tx) - φ; //angle = Math.atan2(ty, tx) + φ / 2; angle = Math.atan2(ty, tx) + φ; の4ヶ所を修正して
- 671 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 07:50:43 ]
- データの読み込み方法が補足のやり方とは違っちゃってるね。
BufferedReader + StringTokenizerを使う場合は、、 Scanner#nextDoubleの代わりにDouble.parseDouble(st.nextToken())、 Scanner#nextIntの代わりにInteger.parseInt(st.nextToken())でいけるんじゃないかな。
- 672 名前:656 mailto:sage [2007/04/03(火) 10:16:03 ]
- >>670-671
何度もありがとうございます! 助かります!
- 673 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 12:28:19 ]
- >>667
授業で何やってんの? サーバとの通信?それともアプレット作るだけ? アカウントの認証は本当に処理しなきゃいけない?てかベーシック認証? 1)鯖と通信するのか? 2)するならどのような方法で行うのか? 3)なんか資料や必要な物が他にあるだろ? 4)あんなでっち上げ画像なんの役にも立たんから抜けてる所は自分で補完しろ。 #アプレットやろうと思ったら環境ナス・・・
- 674 名前:667 [2007/04/03(火) 16:36:43 ]
- >>673
授業では前期の方でJavaの基礎をやった後、簡単なアプレットを作って、 最後の課題で本格的なアプレットを作れといった流れです。 リサーチもかねて、簡単なコンセプトを配布されただけで後は自分で調べろといった感じです。 本格的な認証は必要ないと思います。ただ、ユーザーのデータベースにあるIDとパスが通れば、 ログインさせる流れです。 1)サーバーと通信します。 2)仮想サーバーを作って、そこにユーザーがアクセスするという形です。 アパッチで仮想サーバーを自分のPCに作っています。実際にWebには公開しないと思うので、ひとつのマシンでやり取りを完結します。 つまり、多数ブラウザを開いて一人で複数アカウントを作ってログインして、きちんと動作していれば大丈夫です。 3)資料、画像は自分で図書館や書店で調べろ・用意しろと言われました…。他に必要な物があるなら自分で補完しろとの事です。 4)どうしてもアプレットで無理なら、サーブレットでやっても良いとの事です。
- 675 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 17:16:55 ]
- >>674
>3)資料、画像は自分で図書館や書店で調べろ・用意しろと言われました…。 なら言われた通りに不足分埋めてテンプレの【 補足 】を埋めろ。 >Javaアプレットを使用し、ゲームを作りなさい。 >ゲームの詳細・仕様は配布したイメージファイルを参考にしなさい。 だけじゃ不足してる。その不足分を補完するのが【 補足 】だ。 補完するのはお前の仕事だ。 >【 補足 】特にありません。丸投げでよろしくお願いします。 じゃないだろ。 何で足りん分は自分で考えて自分で用意しろって前提で課題が出てるか分かるか? #ちょっと待て最近、使えねSEとそいつのせいで仕事出来ねぇPGの図になってるぞ。 丸投げの定義を>>1~のテンプレに追加した方がよくね? ループしてるぞこの話。
- 676 名前:667 mailto:sage [2007/04/03(火) 18:12:22 ]
- >>675
分かりました。補足・素材を用意して出直してきます。 少々お待ちください。
- 677 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 18:56:45 ]
- >>656
面倒だしmainメソッドをどんどん大きくしていった。 ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29301 問題Aについて補足のようにBufferedReaderとStringTokenizerを使ったファイルの読み込みかたに>>668を修正。 ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29302 それと問題B。亀の速度制御の変更とかは定数をいじるなりspeedの値の増加アルゴリズムを変えるなり。 問題Cは亀の最初の移動方向をどうするかが指定されていない。出題ミス? って尋ねてるけど、別にやるなんて言ってないわよ。勘違いしないでよね!
- 678 名前:656 mailto:sage [2007/04/03(火) 19:36:16 ]
- >>677
ありがとうございます! 自分で解こうとしても、半日かけても1問も解けなかったりするのですが ここの人たちは仕事早いしツンデレだったり、ホントすごいです! 問題Cの最初の移動方向は好きなように設定して 良いかと思います。 問題の指示通り動けば良いみたいなので。 問題文流れてしまったようなので別のうpロダに再うp したので、どなたか問題Cをお願いします。。。 up.spawn.jp/file/up13102.txt
- 679 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 00:50:56 ]
- >>678
なんか誰もやってないっぽいんでいまさらながら見てみたけど。。 ライブラリいらね・・あまりに糞過ぎる これは確かにやる気が失せる ってか俺はもう投げた
- 680 名前:677 mailto:sage [2007/04/04(水) 01:21:32 ]
- >>678
つんでれうんぬんは置いておいて、実際のところ問題Cまで手を出す暇はない。 「示しなさい」のところの簡単な手がかりを出しとく。でも、今はこれが精一杯。 正しくやろうとすると、例えば、内部判定の場合、 判定する点からの線分と辺とが重なってたり頂点を通ってたりする場合を考えないといけないとか、 いろいろ特別な場合について考慮しないといけないんだけど。がんばってくれ。 Q. 亀が檻の中にいるのかいないのか求める計算方法を外積を使って示しなさい。 A. 檻の辺がとる最大X座標は限定されているので 亀の位置からX軸に平行で檻の頂点のX座標の最大値よりも大きいX座標をもつ点までの線分を考え その線分と檻の各辺との交点が奇数個であれば内部、偶数個であれば外部と判定する 交点があるかどうかの判定は 亀から線分の端点へのベクトルをA 亀から檻の辺の両端点へのベクトルをB、C 外積A×Bと外積A×Cの符号が異なれば交点をもつと判断する Q. 亀が檻にぶつかったときに,次にどの方向に動くのか求める計算方法を示しなさい。 A. 檻の頂点がとる座標の最大最小値は限定されているので 現在の亀の位置から亀の移動方向で確実に檻の外にある点までの線分を考える この線分と檻の各辺との交点をそれぞれ問題Bの亀の軌跡とハードルの交点を求める方法で求める もし線分が2辺と交わるのなら、それは檻の角でぶつかったことになる この場合は亀の移動方向を180度回転させる(移動方向ベクトルの符号を反転させる) さもなければ亀は檻内部にいるので1辺との交点しかないはず その辺がX軸の正の方向となす角をα ぶつかる前の亀の移動方向とX軸の正の方向とのなす角をθ 衝突後の亀の移動方向とX軸の正の方向とのなす角は 2 * α - θ となる
- 681 名前:665=666 mailto:sage [2007/04/04(水) 02:01:27 ]
- まあ、ミニミニ衝突判定ライブラリを書かなきゃいけないからね。
あのクソ亀公使って・・・あれはやる気なくす。 javadoc見て酷い設計だと思ったが。 ソースコード見て絶句した。 あの本、素人向けでライブラリ作るんじゃなくて 既存ライブラリ使う所から始めるんだってさ。
- 682 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 00:46:10 ]
- 恐いものみたさに見てしまった
- 683 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 07:12:38 ]
-
それはjava宿題スレに晒されたタートルグラフィックスライブラリである・・・。 ライブラリの出来の酷さに見ただけでやる気を無くす回答者が続出した。 警告しよう決して怖いもの見たさに見てはいけない・・・。 〜D Q N な カ メ さ ん〜 D Q K 3 -そして伝説へ- ttp://bakkers.gr.jp/javabook/download.html
- 684 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 00:15:46 ]
- 【 課題 】ttp://www.uploda.org/uporg772084.txt.html
【 形態 】1. Javaアプリケーション 【 GUI 】4. 制限なし 【 期限 】4/16 【 Ver 】java version "1.5.0_06" 【 補足 】恥ずかしながら丸投げです。 お願いします。
- 685 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 12:47:56 ]
- 以前同じような問題を解いた
- 686 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 13:39:39 ]
- >>684
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29319 「////////// filename」でそれぞれのファイルに分けてくれ。 デバッグしてないから動かなくても知らん。エラーメッセージも一貫性がないぜ。 長方形の指定方法が指定されてない&「4つの属性でボード上の長方形を識別できるものと考える」 なんて書かれてるから、操作対象の長方形は幅、高さ、左上隅のx、y座標で指定するようにしてる。 浮動小数使うと指定が面倒になるので、長方形の座標やサイズはintにしてる。
- 687 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 20:48:36 ]
- >>686
有難うございます!助かりました。 大いに参考にさせてもらいます!
- 688 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 22:18:48 ]
- 【 課題 】1.レベル1(直線発生アルゴリズム)
直線式を用いて(100,100)から(600,300)の2次元座標点を結ぶ直線と、(100,100)から(300,600)の点を結ぶ直線を描画する。直線の色は視覚可能な色であれば任意とする。JavaのPolylineなど直線描画関数を使用しない。 2.レベル2(3次元デプスキューイング・アルゴリズム) (100,100,0)から(600,300,100)の3次元座標点を結ぶ直線を描画する際、z値の座標値を輝度と見なしてz=0の点の輝度を0(最小値)、z=100の点の輝度を255(最大値)として描画する。直線の色は視覚可能な色であれば任意とする。 【 形態 】2. Applet 【 期限 】4月26日 【 補足 】1はたぶん package Ex1; import java.applet.Applet; import java.awt.Graphics; public class level1 extends Applet { public void paint(Graphics g) { g.drawLine(100, 100, 600, 300); g.drawLine(100, 100, 300, 600); } } だと思うのですがどうでしょうか? 2はまったくわかりません
- 689 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 22:27:12 ]
- >>688
drawLine使っていいの?
- 690 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 22:30:28 ]
- >>689
それがよくわからんのです。 使わないとしたら、どのようにすれば? 直線式というのが気になりますよね。
- 691 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 22:30:47 ]
- >>688
drowLineってここで言ってる直線描画関数なんじゃ? y=ax+bみたいな式を作ってしてループでぐりぐりまわしてちまちま点を打っていけ ととれるんだけど…
- 692 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 22:32:36 ]
- >>691
なるほど。 そういう用語とか調べてはいるのですが、よくわからないもので。 forを使うのですか?
- 693 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 22:47:34 ]
- drawLine等を使わないとなると、
for文で回して1ピクセルごとに直線の座標を計算して点を打っていくんだが、 残念なことにGraphicsには点を打つメソッドがない。 幅と高さが1の四角形の中を塗りつぶす等で代用するか、 画像バッファとして配列等を用意して、それに画素値を入れて行き、 最後にバッファの内容を画像として表示するかのどちらかだな。 Imageを使う手法は習ってる? あと、問題2の方の座標系は左上が原点でX,Y座標が右、下方向で、 Z座標が画面に垂直な方向ということでいいの?
- 694 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 22:57:00 ]
- >>693
丁寧にありがとうございます。 たぶん一番初めの問題なので、それほど高度なことはしないと思います。 Imageを使う手法わかりません。 問い2はそうであると思います。
- 695 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 23:39:27 ]
- >>688
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29321 とりあえず、問題1の方。こんな感じでいいかい? 要は、(x1,y1)から(x2,y2)までの線分が通るピクセル(x,y)が y = y1 + (y2 - y1) / (x2 - x1) * x とか x = x1 + (x2 - x1) / (y2 - y1) * y の直線の式を満たすから、xかyを1づつ変化させて、 もう一方の座標を求めてそのピクセルを塗ればいい。 問題2はこれの応用だ。自分でやるかい?
- 696 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 00:53:01 ]
- すまん。プログラムを見れば分かると思うけど、直線の式は、
y = y1 + (y2 - y1) / (x2 - x1) * (x - x1) x = x1 + (x2 - x1) / (y2 - y1) * (y - y1) の間違いね。
- 697 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 20:04:52 ]
- なんで大学とかって基礎(if文だのfor文だの)一通り教えたらGUIに走るのかな。
そんなのは必要になったときに自習でなんとかなるんだから、もっとOOPを教えるべき。
- 698 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 20:42:52 ]
- そりゃ見た目派手で眺める分には楽しいし、
数字の羅列や意味の分からないプログラミング理論を教えられるより、 プログラムによって計算機に何かさせているという実感が沸くからじゃないかね。 もちろん、今後こっち方面で仕事したいとかいう人間は、 GUIが必要になったときに自習で何とかして、OOPとかの基本を教えられるべき人間なんだろうけど。 そういう人間ばかりじゃないと思うから。
- 699 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 20:47:29 ]
- >>688
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29324 問題2。基本は問題1と同じ。 X,Y座標のついでにZ座標も求めて、その値に応じてピクセルの色を設定するだけ。
- 700 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 21:26:39 ]
- 本当に必要なのはOOPなんかじゃない論理的な思考だよ。
どんなことも論理的に考え、論理的に理解出来る姿勢。 ある事を知っているということは重要じゃない。 ↑にはもちろん、知らない事があったら ブチ切れるより前に自分で調べるという姿勢も含みます。
- 701 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 23:55:17 ]
- まあ>>688はCGの授業らしいからグラフィクス関係が出てこないと看板に偽りありだけどね
- 702 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 00:00:33 ]
- やる気のある奴ならOOPくらい自習で何とかなるよ。
しかし抽象的概念が先っていうのはやる気でねぇよ。
- 703 名前:デフォルトの名無しさん [2007/04/16(月) 12:06:55 ]
- 【 課題 】一定の幅と高さをもつボードがある。図のようにボード上には左上隅を原点とする座標
系(x 座標、y 座標)が定義されているとする。この時、つぎの条件を満たすように二 辺の長さとボード左上の位置を表す座標をもつ長方形をボード上に配置するプログラ ムを作成せよ。座標系の単位はピクセル。 【 形態 】1. Javaアプリケーション(main()で開始) 【 GUI 】4. 制限なし 【 期限 】4月17日13時ぐらいまで 【 補足 】自分でやってもどうしてもわからなかったので丸投げです 期限が近くてごめんなさい・・・ でも一応自分でも今努力中です 補足には続きがあります
- 704 名前:デフォルトの名無しさん [2007/04/16(月) 12:09:27 ]
- 703の補足の続き
1) 配置に関する以下の操作を行うことができる。各操作の名前は以下の通りである。 a) 幅、高さ、左上の位置(x座標、y座標)を与えて長方形を作成する。create b) 長方形R を指定して、Rを現在位置から指定したx方向の距離x0,y方向の距 離y0b だけ移動する。move c) 長方形R を指定して、指定した幅の倍率mx(>1)で幅を、高さの倍率my(>1)で 高さをそれぞれ拡大する。倍率は有限小数で与えるものとする。expand d) 長方形R を指定して、指定した幅の倍率mx(0<mx<1)で幅を高さの倍率 my(0<my<1)で高さをそれぞれ縮小する。倍率は有限小数で与えるものとする。 shrink e) 長方形R を指定して削除する。delete f) ボード上の長方形をすべて削除する。deleteAll g) 2 つの長方形R1 とR2 を指定し、R1 とR2 の重なり部分を抽出し、新たな長方 形R3 として配置する。intersect (2) その他に次の操作を行うことができる。 a) ボードの状態を表示する。displayBoard ここで「ボードの状態を表示する」とはボード上にあるすべての長方形の属性(幅、 高さ、x 座標、y 座標)を表示するということ。 b) 配置に関する操作を終了する。 exit (3) ユーザはキーボード(標準入力)から(1)の操作名と必要なデータを入力し、プ ログラムが結果のボード上のデータ(どの位置にどの長方形が配置されている か)を標準出力に出力する。このプログラムは以下のように使用することができ る。 a) ユーザは起動時にボードの大きさ(幅と高さ)を設定する。 b) 起動すると、操作一覧が表示される。 c) ユーザは操作を選択し、要求されるデータを入力する。 d) 操作の実行が終了すると、操作一覧に戻り、exit が実行されるまで操作を選 択することができる。 さらに続きます
- 705 名前:デフォルトの名無しさん [2007/04/16(月) 12:11:03 ]
- 704の続き
(6) クラス構成に関する条件: RectangleEditor:mainメソッドをもつクラス Rectangle:長方形のクラス Board:長方形を配置するボードのクラス Command: ユーザからの入力を受け取り、長方形に対する操作を呼び出し、ボー ドの状態を更新するクラス 標準入力からの入力ならびに標準出力への出力クラスをInput およびOutputと して、それぞれ以下のインターフェースを実装する。 public interface InputIF { public abstract double input(); } public interface OutputIF { public abstract void write(Board b); public abstract void write(String s); } 10 20 30 40 50 60 10 20 30 40 50 60 だそうです・・・この1.2.3.6を今回はやるそうです よろしくお願いします
- 706 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 14:01:55 ]
- >>703
>>686を見ろ
- 707 名前:デフォルトの名無しさん [2007/04/16(月) 16:17:09 ]
- >>706
同志がいたんですね・・・ご指摘ありがとうございます
- 708 名前:688 mailto:sage [2007/04/17(火) 00:39:27 ]
- >>699
遅れましたが、ありがとうございました。 if (Math.abs(dx) > Math.abs(dy)) { for (int x = x1; x != x2; x += sx) { double y = y1 + (double) dy / dx * (x - x1); setPixel(g, x, y); } } else { for (int y = y1; y != y2; y += sy) { double x = x1 + (double) dx / dy * (y - y1); setPixel(g, x, y); } と途中にあったのですが、これが点をひとつずつずらしていっているという作業なのですか? 今までforはfor(int a=0;a<10;a++)のような簡単のものしか扱った事しかないので、 理解に苦しんでいます、
- 709 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 01:50:19 ]
- >>708
sx(sy)はx1>x2(y1>y2)なら-1、x1<x2(y1<y2)なら1が入ってるから、 x(y)がx1(y1)から始まればx(y)座標を1ずつ変化させて、 最終的にx2(y2)に到達してx!=x2(y!=y2)が不成立となりループが終了する。
- 710 名前:688 mailto:sage [2007/04/17(火) 11:52:43 ]
- >>709
1の問題を自分なりにわかりやすく解いてみたのですが、線が点線のようになってしまいます。 なにが足りないのでしょうか? package Ex1; import java.applet.Applet; import java.awt.Graphics; public class level1 extends Applet { public void paint(Graphics g) { drawLine1(g, 100, 100, 600, 300); drawLine2(g, 100, 100, 300, 600); } private void drawLine1(Graphics g, int x1, int y1, int x2, int y2) { for (int y = y1; y < y2; y += 1) { double x = x1 + (double) (x2 - x1) / (y2 - y1) * (y - y1); setPixel(g, x, y); } } private void drawLine2(Graphics g, int x1, int y1, int x2, int y2) { for (int x = x1; x < x2; x += 1) { double y = y1 + (double) (y2 - y1) / (x2 - x1) * (x - x1); setPixel(g, x, y); } } private void setPixel(Graphics g, double x, double y) { g.fillRect((int) x, (int) y, 1, 1); } }
- 711 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 16:19:34 ]
- 【 課題 】以下のプログラムを作成せよ。
(1)スタックと演算子順位を使った構文解析により、中置記法の式を後置記法に変換するプログラム。 (オペランドはa〜zの一文字とする) (2)中置記法の式を後置記法に変換し、スタックを使ってその後置記法の式を計算するプログラム。 (オペランドは整数または実数) 後置記法に変換するアルゴリズム: 初期設定:スタックに'$'だけを積む 以下を繰り返す (1)次の入力記号aiを読む(入力記号がなかったら'$'を読んだことにする) (2)aiがオペランドなら、それをそのまま出力 (3)aiが'('なら、それをスタックに積む (4)aiが')'なら、最初に出てくる'('までスタックから降ろす(オペレーターは出力する) (5)aiが'$'なら、'$'までをスタックから降ろし(オペレーターは出力する)、処理を終了 (6)その他の場合(aiはオペレーター。そのときスタックのトップがbであるとする) bがオペレーターでありprec(b)>=prec(ai)である間(precは演算子順位を返す関数) bをスタックから下ろして出力する。 bがオペレーターでないか(bは'('か'$')、prec(b)<prec(ai)なら、aiをスタックに積む prec(+)=prec(-)=1 prec(*)=prec(/)=2 問題の例: 中置記法 a*b+c → 後置記法 ab*c+ 中置記法 d-(e+f*g) → 後置記法 defg*+- 【 形態 】1. Javaアプリケーション 【 期限 】4/20(金) 23:00まで 【 Ver 】java version "1.6.0_01" 丸投げですがよろしくお願いします。
- 712 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 16:53:07 ]
- >>710
惜しい! drawLine1はy軸を基準に1ドットずつ描画してるだろう。 だけど、引数をみるとx軸の線の方がy軸より長い。 だからdrawLine1はy軸が1増えるたびに、x軸の一定距離の描画をすっぽかしている。 もう答えは分かるだろう。
- 713 名前:688 mailto:sage [2007/04/17(火) 20:22:28 ]
- >>712
むむ。。。 ならばこういうことでしょうか? sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29327
- 714 名前:712 mailto:sage [2007/04/17(火) 22:58:02 ]
- >>713
課題はクリアしてるし、これで提出しても最低でも良(優良可不可)、学校によっては優をとってもおかしくないと思う。 でも、線は太くなるだろう。 まだ時間があるなら極めるも良し、このまま寝るも良し。 ただ、さっきのソースの方が今回のソースより惜しかった。
- 715 名前:688 mailto:sage [2007/04/17(火) 23:29:18 ]
- >>714
ありがとうございます。 とりあえず他の授業のレポートも残っているので、これで切り上げます。 色々とありがとうございました
- 716 名前:デフォルトの名無しさん mailto:sceudle1029@mail.goo.ne.jp [2007/04/19(木) 00:00:17 ]
- 1,2,3,…,nの和・積を表示されるプログラムを作りたいのですが、わかりません。教えて下さい。
たとえば7を入力すると、 1+2+3+4+5+6+7=28 1*2*3*4*5*6*7=5040 という風になります。 【形態】CPad for Java2 SDK 【期限】4月24日午後0時 【補足】計算はできているのですが、1+2+3+…1*2*3*,の部分ができない状態です。
- 717 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 00:02:02 ]
- >>716
>>1
- 718 名前:デフォルトの名無しさん mailto:sceudle1029@mail.goo.ne.jp [2007/04/19(木) 00:06:33 ]
- ??
- 719 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 00:47:44 ]
- >>718
「>>1を1文ずつ良く読め。テンプレに従って書け。」ということ 守らないとスルーされるから(−人
- 720 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 01:09:49 ]
- >>711
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29329 //////////--**++**-- "ファイル名" で各ファイルに分解してくれ。 設計せずにてきとーに書いたので、かなりいい加減なコードだ。 正しい入力にはたぶん正しく応答すると思うが、 誤り処理の仕様が書かれてなかったので、誤った入力は無視したり例外を投げたりてきとー。 中置記法の式の与え方も書いていなかったので、コマンドライン引数で与える形にした。 (1)の実行はjava InfixNotationTranslator "a*b+c"みたいに。 (2)の実行はjava Calc 1.5+3/2みたいに。 空白文字は無視するし、複数のコマンドライン引数に分けて与えると空白を挿入して連結する。 字句解析器に渡す入力はReaderにしてるので、 入力がファイルとかコンソールとかなら今のStringReaderをそういう入力にすれ。
- 721 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 01:34:01 ]
- >>716
またおまえか
- 722 名前:688 mailto:sage [2007/04/19(木) 21:49:43 ]
- 【 課題 】
1.レベル1(スクロールバーによる回転) 直線が互いに直行するメッシュ図(碁盤の目の模様)を描画し、スクロールバーにより、メッシュを360度回転せよ。 メッシュは2次元図形でよい。またメッシュの色や数(>4)は任意とする。 2.レベル2(3次元メッシュ) メッシュを3次元で描画し、3軸のスクロールバーを用いて3次元で回転する。回転中心はメッシュの中央とする。 3.レベル3(デプスキュー) 課題2において、z軸の値を輝度(色)と見なしz値が遠方を輝度が弱く、手前を強い映像を描画し、これを3軸のスクロールバーで回転せよ。メッシュは細かくするのが好ましい。 4.レベル4(透視変換) 課題3のメッシュに透視変換(z値でx、y軸を除算)を加えて描画せよ。 【 形態 】2. Applet 【 期限 】4月3日 【 補足 】 スクロールバーは作れたのですが、メッシュがいまいちわかりません。 直線を組み合わせて作るだろうということはわかるのですが。。。
- 723 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 23:41:44 ]
- >>722
1本の直線の描き方は分かってきたんだから、 メッシュは線分を複数描けばすむじゃないか。 ところで、これも標準のAPIを使わず自前の直線描画メソッドを使うの? 回転したときの線分の両端の座標の計算はJavaの宿題じゃなくて数学の宿題だな。 座標変換の式を質問者が補足で説明した方がいい。 なんにせよ、しめきりまで少なくともまだ1年近くあるんだし、もう少し自分でがんばれw
- 724 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 00:01:11 ]
- >>723
あれ?AffineTransform使わないの?
- 725 名前:688 mailto:sage [2007/04/20(金) 01:12:56 ]
- >>723
ちょww 5月3日ですorz 直線をforループで等間隔に並べていけばおkってことですか? APIとは?
- 726 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 01:34:51 ]
- >>724
前回の出題レベルを見るにAffineTransformは使っちゃいけないんじゃないか? それに3次元に対応できないし。座標変換は自分で書けってことだと思うが、どうよ?>>722 Java3Dとかでも使っていいってこととは思わないんで。 >>725 > 直線をforループで等間隔に並べていけばおkってことですか? 原理的にはそう。 「標準のAPIを使わず自前の直線描画メソッドを使うの?」って聞いたのは、 drawLineとかのJavaで最初から用意されている直線描画用のメソッドは使ってもいいのかどうかってこと。 前回は点を打って直線にするメソッドを自前で作ったから。 標準で用意されたどのメソッドまで許されるのかとかは、AffineTransformは使えないの?とかも含め、 どの程度の縛りがあるのかは授業を受けている人間でないと分からない。
- 727 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 12:32:06 ]
- >>722
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29330 ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29331 ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29332 ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29333 とりあえず動きそうなものを作ったが正しいかどうか知らんよ。 3,4はアプレットのサイズを大きくすると環境によっては結構重いかも。 1,2では直線描画のメソッドdrawLineは単にGraphicsクラスのdrawLineを呼び出しているだけなので、 もし使用不可なら以前の課題で作成した2次元での線分描画メソッドに変更のこと。 2以降の3次元内での回転は、z=0平面内にメッシュがある最初の状態から始めて、 x軸周りの回転、y軸周りの回転、z軸周りの回転の順序で行った時の状態を表示する。 だから、たとえばy軸周りに90度回した状態でx軸周りに回転すれば、 見かけはz軸周りに回転しているように見えるので注意。 Level1.javaからLevel4.javaまで全てを同時にコンパイルすると、 Point3クラスが重複するって怒られるので、別々にコンパイルのこと。 どれも同じバイトコードを生成するので、コンパイル後のクラスファイルが上書きされるのは問題ないはず。
- 728 名前:688 mailto:sage [2007/04/20(金) 20:52:39 ]
- >>726
drawlineは前回のものを使うそうです。 それとlength = (width > height ? height : width) / 3; の?って始めてみたのですが、どういう意味があるのですか?
- 729 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 21:15:45 ]
- >>728
三項演算子 条件式?値1:値2 条件式の評価結果がtrueなら値1、falseなら値2を返す 値の代わりに処理も記述可能(複雑な処理だと可読性が下がるのであまりお勧めしない) if〜elseを一行にまとめたようなものとでも思ってくれい
- 730 名前:デフォルトの名無しさん [2007/04/22(日) 00:04:57 ]
- 【 課題 】
int型の要素を持つsourceを0,2,4,6,....16,18で初期化しint型の配列要素aliasを宣言し、sourceと同じ配列要素を確保する。 aliasにsourceを代入する。 int型の配列変数targetを宣言し、sourceと同じ配列要素数を確保する。 sourceのそれぞれの要素をtargetの要素に繰り返し文によりコピーする。 aliasのそれぞれの要素を10倍する(10倍したものをaliasに代入)しsourceの要素、targetの要素をそれぞれ表示 【 形態 】1. Javaアプリケーション(main()で開始) 【 期限 】提出期限は月曜です。 【 補足 】 プログラムは作って、コンパイルは出来るように なったんですが、表示が上手くできません class FirstClass04{ public static void main(String args[]) { int source[]={0,2,4,6,8,10,12,14,16,18}; int alias[]= new int[10]; alias=source; int target[]=new int[10]; for(int i=0; i<10; i++) { target[i]=source[i]; } for(int j=0; j<10; j++) { alias[ j]=alias[ j]*10; } System.out.println("sourceの要素"); for(int g=0; g<10; g++) { System.out.println("source[ j]"); } System.out.println("targetの要素"); for(int k=0; k<10; k++) { System.out.println("target[i]"); }}}
- 731 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 00:32:21 ]
- System.out.println("source["+j+"]="+source[j]);
面倒だから読んでないんだがjでいいのか?
- 732 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 01:54:43 ]
- >>730
System.out.printlnで表示するときに""で囲むのは囲まれたものを文字そのものとして表示するとき 変数の内容を表示するときは""で囲わずそのまま書く public class FirstClass04 { public static void main(String[] args) { int[] source = {0, 2, 4, 6, 8, 10, 12, 14, 16, 18}; int[] alias = new int[source.length]; alias = source; int[] target = new int[source.length]; for (int i = 0; i < source.length; i++) target[i] = source[i]; for (int j = 0; j < alias.length; j++) alias[j] = alias[j] * 10; System.out.println("sourceの要素"); for (int g = 0; g < source.length; g++) System.out.println(source[g]); System.out.println("targetの要素"); for(int k = 0; k < target.length; k++) System.out.println(target[k]); } }
- 733 名前:デフォルトの名無しさん [2007/04/22(日) 14:24:38 ]
- 【 課題 】オセロの盤面を作成せよ《必須》
【 形態 】1. Javaアプリケーション(main()で開始) 【 GUI 】2. Swing 【 期限 】2007/4/22 【 Ver 】java version "1.5.0_10" 【 補足 】以下のソースのプログラムを起動したときにオセロの盤面が表示されません。 フレームを最大化などにすると、ようやく表示されます。 コンポーネントの作成順序が間違っているのでしょうか?
- 734 名前:733 [2007/04/22(日) 14:29:18 ]
- 以下がコンポーネントを作成しているメソッドになります。
public void init_view(){ cnt = getContentPane(); cnt.setLayout(new BorderLayout()); JPanel jp[] = new JPanel[2]; jp[0] = new JPanel(new GridLayout(8,8)); jp[1] = new JPanel(new FlowLayout()); for(int i=0;i<8;i++){ for(int j=0;j<8;j++){ jl[i][j] = new JLabel(); jl[i][j].setBorder(new LineBorder(Color.black,3)); jp[0].add(jl[i][j]); } } jb[0] = new JButton("PASS"); jb[1] = new JButton("EXIT"); jb[2] = new JButton("RESET"); jp[1].add(jb[0]); jp[1].add(jb[1]); jp[1].add(jb[2]); jp[0].setBackground(Color.green); jp[1].setBackground(Color.black); cnt.add(jp[0],BorderLayout.CENTER); cnt.add(jp[1],BorderLayout.SOUTH); }
- 735 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 16:54:23 ]
- >>733
setBounds
- 736 名前:デフォルトの名無しさん [2007/04/22(日) 18:39:45 ]
- 【 課題 】 複素数のクラス(Complex)を考える.複素数は「もの」として考えると,
実部の値と虚部の値という性質を持つ必要があり,実部や虚部の値を取り出す機 能が最低限必要である. コンストラクタ: 実部と虚部を引数として初期化 フィールド: 実部の値及び虚部の値を持つために,realNum 及び imagNum を用意 メソッド: toString()メソッドは,「2.3+4.2i」等と表示を行うためのメソッド(詳細は次週) getReal()メソッドは,複素数の実部の値を返す getImaginary()メソッドは,複素数の虚部の値を返す 以下の SecondClass01.java を完成して,実行しなさい. 【形態】1. Javaアプリケーション(main()で開始) 【 期限 】2007/4/23まで
- 737 名前:デフォルトの名無しさん [2007/04/22(日) 18:41:04 ]
- これが問題です。
class SecondClass01{ public static void main(String args[]){ Complex complex01 = new Complex(2.5, 4); Complex complex02 = new Complex(4, -2); System.out.println("The first complex = " + complex01); System.out.println("The second complex = " + complex02); System.out.println("Re(" + complex01 + ") = " + complex01.getReal()); System.out.println("Im(" + complex01 + ") = " + complex01.getImaginary()); }} class Complex { double realPart; double imagPart; public Complex(double r, double i){ realPart = r; imagPart = i;} public double getReal(){ // ここを完成させる} public double getImaginary(){ // ここを完成させる } public String toString(){ StringBuffer sb = new StringBuffer().append(realPart); if (imagPart >= 0.0) sb.append('+'); return sb.append(imagPart).append('i').toString(); }}
- 738 名前:デフォルトの名無しさん [2007/04/22(日) 18:47:22 ]
- 732の方ありがとうございました。
【 課題 】 730と同じ問題で、実行後どうしてそのような表示結果が得られるかを 変数の参照方法などに注意して詳しく説明しなさい. 【 期限 】明日までです
- 739 名前:デフォルトの名無しさん [2007/04/22(日) 19:18:25 ]
- ソースを一行ずつみていって、メモリへの格納内容を見ていけばいいんじゃない?
- 740 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 19:21:17 ]
- >>736-737
そこまで提示されて何故自力でやろうとしないのか...
- 741 名前:733 [2007/04/22(日) 19:54:51 ]
- >>735
setBoundsでもうまく行きません。 お願いします。今日中にやらないと間に合いません。
- 742 名前:デフォルトの名無しさん [2007/04/22(日) 20:37:21 ]
- 今日中?朝マックまで12時間はあるだろ?
- 743 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 21:51:10 ]
- >>741
普通に描画されるぞ?
- 744 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 22:19:46 ]
- >>733の言ってる事って、ウインドウ出るけど描画されない
(うちだとされる時もある)って事? それ、俺もあるわw sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29336 原因分かる方俺にも教えてって事で。 >>736 ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29338 これでいいの?いいのか?w 2つ目の複素数を出力しないのも気になったんでそれも追加w
- 745 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 22:53:02 ]
- >>744
setVisibleを最後にもってきたらちゃんと表示された
- 746 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 23:32:44 ]
- そりゃそうだろうな
- 747 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 01:35:43 ]
- 激しくすれ違いなんだが、
次の2の補数表現で表された2進数を10進数を直せ。 0111 1111 1111 1111 1111 1101 0011 0011
- 748 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 01:47:41 ]
- >>747
2147482931
- 749 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 02:03:40 ]
- >>748
1111 1111 1111 1111 1111 1101 0011 0011 ?
- 750 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 03:09:17 ]
- >>747
最上位ビットが0ってのが,いまいち解せんのですが 33ビットの二進数だと考えて、つまり 1 0111 1111 1111 1111 1111 1101 0011 0011 ↑ ここに符号があって、値部分を32ビットで表現してる ものだと解釈すれば、それを10進数で表現したものは -2147484365 になると思います。 一方、>>749さんのように解釈し、「2の補数なので符 号ビット部分は1だけど、>>747では符号ビットを除い て示した(ただしつい最上位ビットも0と書いてしまった) のだと見れば、それを10進数で表現したものは -717 じゃないでしょうか。 しかし、ここはJavaスレですし、Javaらしく「intは符号 付き32ビット」と考えれば>>747の数値は正の値という ことになり >>748にあるように、10進数での表現は 2147482931 だと思います。
- 751 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 13:16:07 ]
- どれが正解かわかんねw
- 752 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 19:37:09 ]
- >>751
まあ問題文の日本語の助詞からして狂ってるから 分かるわけないな。
- 753 名前:デフォルトの名無しさん [2007/04/23(月) 22:27:31 ]
- 重い課題投下してもいいでしょうか・・・
【 課題 】フレーム上で画像を選択して読み込み、その画像を閾値(しきいち)をつかって二値化するプログラムを作成せよ。 まずフレームのメニューから画像を読み込み、さらにメニューから閾値を入力するダイアログを表示させる。 そのなかに用意したテキストボックスに閾値を入力して決定すると、あらたなフレームに二値化された画像が表示される。 【 形態 】1. Javaアプリケーション(main()で開始) 【 GUI 】1. AWTのみ(フレームを使う) 【 期限 】4月25日(水)午後5:30迄 【 Ver 】java version "1.5.0_11" 【 用語 】 ●閾値(しきいち) 閾値というのは各画素の明るさをあらわす一定の基準値であり、 画像の各画素値が0〜255の濃度で表されるため、これを閾値の範囲として定める。 ●二値化 二値化とはこの場合前述の閾値を使って、画像を黒と白の二つの値に変換することである。 例えば閾値100であるならば濃度値100以上は黒それ以下は白というように。 ※モノクロ画像に変換するということではない。 【 補足 】全然わかりづらいと思うので、ペイントで書いてみました。 www.uploda.org/uporg785109.png たくさん数式が必要なんでしょうけどわかりません; プログラム上でRGBにマスク?をかけてモノクロ画像にしてから濃度値を取り、 二値処理を行うってことでいいんでしょうか。全然的外れなこと言ってたらごめんなさい; ここまでの少ない情報量で作れるかたいらっしゃらないでしょうか? どうかよろしくお願いします。
- 754 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 22:58:34 ]
- RGBから明るさへはjava.awt.Color.RGBtoHSBで変換できるので、
そこからB成分だけ貰えばいい。
|

|