質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.46%
Java

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

Q&A

解決済

2回答

855閲覧

Javaでの図形作成、座標を理解したい

GG_Glow

総合スコア12

Java

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

0グッド

0クリップ

投稿2021/04/25 15:44

このような画像を作成したいです。
このような図形を作成したいです。X1,Y1は固定にし、X2,Y2の値を変更して作成したいです。

Java

1import java.awt.*; 2import java.awt.event.*; 3import java.lang.Math; 4 5public class Prog08 extends Frame{ 6 public Prog08(){ 7 setSize(400,300); 8 addWindowListener(new WindowAdapter(){ 9 public void windowClosing(WindowEvent e){ 10 System.exit(0); 11 } 12 }); 13 } 14 15 public void paint(Graphics g){ 16 int x1,x2,y1,y2,k; 17 for(k=0;k<360;k+=5){ 18 x1=(int)(200+100*Math.cos(k*3.14/180)); 19 y1=(int)(150-100*Math.sin(k*3.14/180)); 20 x2=(int)(200+100*Math.cos(k*3.14/180)); 21 y2=(int)(150-100*Math.sin(k*3.14/180)); 22 g.drawLine(x1,y1,x2,y2); 23 } 24 } 25 26 public static void main(String[] args){ 27 Frame w=new Prog08(); 28 w.setVisible(true); 29 } 30}

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

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

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

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

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

guest

回答2

0

ベストアンサー

(x1,y1) と (x2,y2) の座標が同じなので線が引かれていません。

diff

1 x1=(int)(200+100*Math.cos(k*3.14/180)); 2 y1=(int)(150-100*Math.sin(k*3.14/180)); 3- x2=(int)(200+100*Math.cos(k*3.14/180)); 4- y2=(int)(150-100*Math.sin(k*3.14/180)); 5+ x2=(int)(200+100*Math.cos((k+120)*3.14/180)); 6+ y2=(int)(150-100*Math.sin((k+120)*3.14/180));

投稿2021/04/26 03:21

kazuma-s

総合スコア8224

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

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

0

X1,Y1は固定にし、X2,Y2の値を変更して作成したいです。

x1もy1もx2もy2も固定してみた。

java

1import java.awt.*; 2import java.awt.event.WindowAdapter; 3import java.awt.event.WindowEvent; 4import java.awt.geom.Line2D; 5import java.util.Arrays; 6 7public class Prog08 8 extends Frame { 9 public Prog08() { 10 setSize(400, 300); 11 addWindowListener(new WindowAdapter() { 12 public void windowClosing(WindowEvent e) { 13 System.exit(0); 14 } 15 }); 16 } 17 18 public void paint(Graphics g) { 19 final double pi2 = 2.0 * Math.PI; 20 final double x1 = 100 * Math.cos(pi2 * 0.0 / 3.0); 21 final double y1 = 100 * Math.sin(pi2 * 0.0 / 3.0); 22 final double x2 = 100 * Math.cos(pi2 * 1.0 / 3.0); 23 final double y2 = 100 * Math.sin(pi2 * 1.0 / 3.0); 24 final double x3 = 100 * Math.cos(pi2 * 2.0 / 3.0); 25 final double y3 = 100 * Math.sin(pi2 * 2.0 / 3.0); 26 27 final Graphics2D g2 = (Graphics2D) g; 28 g2.translate(150, 150); 29 final int div = 25; 30 final double rotate = pi2 / div; 31 System.out.println(Arrays.asList(x1, y1, x2, y2, x3, y3, rotate)); 32 33 for (int i = 0; i < div; i++) { 34 g2.rotate(rotate); 35 g2.draw(new Line2D.Double(x1, y1, x2, y2)); 36 g2.draw(new Line2D.Double(x2, y2, x3, y3)); 37 g2.draw(new Line2D.Double(x3, y3, x1, y1)); 38 } 39 } 40 41 public static void main(String[] args) { 42 Frame w = new Prog08(); 43 w.setVisible(true); 44 } 45}

投稿2021/04/26 00:09

shiketa

総合スコア3990

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問