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

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

詳細はこちら
JavaFX

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

Java

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

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

解決済

1回答

1033閲覧

fillPolygonの書き方でのエラー

nakagen

総合スコア24

JavaFX

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

Java

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

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

0グッド

0クリップ

投稿2021/02/06 11:09

前提・実現したいこと

三角形を描写出来る仕組みを考えてみたのですが、「fillpolygonである場合、double[],double[],intでなければならない」がでました。

実際に、「gc.fillPolygon(y1,x1,y1-y2,x2-x1,y1-y2,x2+x1,3);」と書いたのですが、この場合正しい書き方は何なのでしょうか・・・?

また、xとyはその場の位置を示すもので、書き始めと書き終わりの場所でもあります。

発生している問題・エラーメッセージ

fillPolygonの三角形の描写を考えてみたのですが、「fillpolygonである場合、double[],double[],intでなければならない」といったエラーメッセージが出ました。

該当のソースコード

javafx

1package kadai; 2 3import java.io.Serializable; 4 5import javafx.scene.canvas.GraphicsContext; 6import javafx.scene.paint.Color; 7 8abstract class Shape implements Serializable{ 9 static final int RECT = 0; 10 static final int OVAL = 1; 11 static final int LINE = 2; 12 static final int TRI = 3; 13 14 double x1,y1,x2,y2; 15 int n1; 16 double r,g,b; 17 18 abstract public void draw(GraphicsContext gc); 19 20 public void setColor(double r,double g,double b) { 21 this.r = r; 22 this.g = g; 23 this.b = b; 24 } 25//書き始め 26 public void setStartPoint(double x,double y) { 27 x1 = x; 28 y1 = y; 29 } 30//書き終わり 31 public void setEndPoint(double x,double y) { 32 x2 = x; 33 y2 = y; 34 } 35} 36class Rect extends Shape implements Serializable{ 37 public void draw(GraphicsContext gc) { 38 gc.setFill(Color.color(r,g,b)); 39 gc.fillRect(x1, y1, x2-x1, y2-y1); 40 } 41} 42class Oval extends Shape implements Serializable{ 43 public void draw(GraphicsContext gc) { 44 gc.setFill(Color.color(r,g,b)); 45 gc.fillOval(x1, y1, x2-x1, y2-y1); 46 } 47} 48class Line extends Shape implements Serializable{ 49 public void draw(GraphicsContext gc) { 50 gc.setStroke(Color.color(r,g,b)); 51 gc.strokeLine(x1, y1, x2, y2); 52 } 53} 54class Trian extends Shape implements Serializable{ 55 public void draw(GraphicsContext gc) { 56 gc.setFill(Color.color(r,g,b)); 57 gc.fillPolygon(y1,x1,y2-y1,x2-x1,y2-y1,x3+x1,3); 58 59 } 60}

試したこと

三角形の位置関係を考えてみました

https://teratail.com/questions/319352
での質問を基に改めて考えました

補足情報(FW/ツールのバージョンなど)

jdk14

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

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

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

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

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

guest

回答1

0

自己解決

class Trian extends Shape implements Serializable{ public void draw(GraphicsContext gc) { int n = 3; double x3[] = {x1,x2-x1,x2+x1}; double y3[] = {y1,y2-y1,y2-y1}; gc.setFill(Color.color(r,g,b)); gc.fillPolygon(x3,y3,n); } }

この書き方で解決しました

参考ページは以下です

http://java.k-sakabe.com/applet/fillpolygon.html

投稿2021/02/06 11:50

nakagen

総合スコア24

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問