🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
JavaFX

JavaFXとは、Java仮想マシン上で動作するリッチインターネットアプリケーション (RIA) のGUIライブラリです。Swingとは異なり、FXMLと呼ばれる XMLとCSSを併用してデザインを記述します。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

1回答

650閲覧

JavaFX/SceneBuilderでのグラフ作成

wsdjava

総合スコア4

JavaFX

JavaFXとは、Java仮想マシン上で動作するリッチインターネットアプリケーション (RIA) のGUIライブラリです。Swingとは異なり、FXMLと呼ばれる XMLとCSSを併用してデザインを記述します。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2019/11/12 10:32

前提

現在、Javaで食物連鎖のシミュレーターを作っているんですが、そのシミュレーターで得たデータをJavaFX/SceneBuilderでグラフ化したいと思っています。
シミュレーターは、非常に簡単な作りで、何日後か打つと、決めた個体数の初期値からすでに決められたルールの足し引きの計算が行われ、その日数後の個体の残りの数が出力されるというものです。

実現したいこと

このシミュレーターで例えば、100日後の結果を出力したとします。そこで、100日後に至るまでの何日か毎の個体数の偏移をグラフ化できたらと考えています。(例えば10日毎など)

食物連鎖のソースコード

Java

1import java.util.Scanner; 2 3class AnimalNo { 4 private int lion; 5 private int rabbit; 6 private int grass; 7 8 AnimalNo(int lionNo, int rabbitNo, int grassNo) { 9 lion = lionNo; 10 rabbit = rabbitNo; 11 grass = grassNo; 12 } 13 14 int getLionNo(){ 15 return lion; 16 } 17 int getRabbitNo(){ 18 return rabbit; 19 } 20 int getGrassNo(){ 21 return grass; 22 } 23} 24 25class Foodchain { 26 27 public static void main(String[] args) { 28 System.out.println("~食物連鎖シミュレーション~"); 29 System.out.println("※詳しいルール(きめごと)はRULE.txtをお読みください。※") ; 30 System.out.println("動物の個体数の初期値を決めてくだい。(ライオン、うさぎ、草の順番に)"); 31 Scanner stdIn = new Scanner(System.in); 32 int lion_f = stdIn.nextInt() ; 33 int rabbit_f = stdIn.nextInt() ; 34 int grass_f = stdIn.nextInt() ; 35 36 AnimalNo initial = new AnimalNo(lion_f, rabbit_f, grass_f); 37 38 System.out.println("何日後のシミューレーションを行うか入力してください。"); 39 int day = stdIn.nextInt() ; 40 System.out.print(day + "日後...") ; 41 42 int lion_eat = day/3 ; 43 int lion_de = day/20 ; 44 int lion_after = initial.getLionNo() - lion_de + lion_eat ; 45 46 int grass_in = day*15 ; 47 int grass_de = (day/3)*5 ; 48 int grass_after = initial.getRabbitNo() - grass_de + grass_in ; 49 50 int rabbit_eat = day/1 ; 51 int rabbit_de = day/50 + (day/1)*1 ; 52 int rabbit_after = initial.getRabbitNo() - rabbit_de + rabbit_eat ; 53 int rabbit_after2; 54 if (grass_after < 0) 55 rabbit_after2 = rabbit_after - (day - 18)*2 ; 56 else rabbit_after2 = rabbit_after + 0 ; 57 58 if (lion_after < 0) { 59 System.out.println("ライオンが絶滅しました。" + "プログラムを終了します。") ; 60 System.exit(0); 61 }else if (rabbit_after < 0) { 62 System.out.println("うさぎが絶滅しました。" + "プログラムを終了します。") ; 63 System.exit(0); 64 }else if (rabbit_after2 < 0) { 65 System.out.println("うさぎが絶滅しました。" + "プログラムを終了します。") ; 66 System.exit(0); 67 }else{ 68 System.out.println("ライオン:"+lion_after+"うさぎ:"+rabbit_after2+"草"+grass_after) ; 69 } 70 } 71 }

何か良いグラフ化の仕方はないでしょうか。よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

何のグラフを使うかは色々あると思いますが。
3種類なので折れ線グラフでライオン、兎、草の遷移数をそれぞれ記載するのはどうでしょうか。
参考リンク

投稿2019/12/04 00:56

ababa_Sigrun

総合スコア279

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問