Rumah  >  Artikel  >  Java  >  Bagaimana untuk Memutar Bentuk Secara Menegak Sekitar Paksi-X di Jawa?

Bagaimana untuk Memutar Bentuk Secara Menegak Sekitar Paksi-X di Jawa?

DDD
DDDasal
2024-10-26 16:07:03545semak imbas

How to Rotate a Shape Vertically Around the X-axis in Java?

Cara Memusingkan Bentuk Secara Menegak Mengelilingi paksi X

Apabila bekerja dengan grafik 2D, selalunya perlu memutarkan bentuk di sekeliling sebuah paksi. Ini boleh dicapai menggunakan gabungan transformasi.

Salah satu cara untuk memutarkan bentuk di sekeliling paksi-x ialah menggunakan kelas AffineTransform. Kelas ini menyediakan pelbagai kaedah untuk melakukan transformasi pada bentuk, termasuk putaran.

Untuk memutarkan bentuk di sekeliling paksi-x, anda boleh menggunakan kaedah rotate() kelas AffineTransform. Kaedah ini mengambil dua hujah: sudut putaran dalam radian dan koordinat x dan y bagi titik di sekeliling putaran sepatutnya berlaku.

Sebagai contoh, kod berikut memutarkan bentuk di sekeliling paksi-x dengan 45 darjah:

<code class="java">AffineTransform at = new AffineTransform();
at.rotate(Math.toRadians(45), x, y);</code>

Setelah anda mencipta objek AffineTransform, anda boleh menggunakannya pada bentuk menggunakan kaedah transform() kelas Shape. Kaedah ini mengambil objek AffineTransform sebagai hujah dan menggunakan transformasi pada bentuk.

Sebagai contoh, kod berikut menggunakan objek AffineTransform pada poligon:

<code class="java">Polygon polygon = new Polygon();
at.transform(polygon, polygon);</code>

Sebaik sahaja anda telah menggunakan transformasi kepada bentuk, anda boleh melukisnya menggunakan kaedah draw() kelas Graphics2D.

Sebagai contoh, kod berikut melukis poligon:

<code class="java">Graphics2D g2d = (Graphics2D) g;
g2d.draw(polygon);</code>

Penskalaan Bentuk

Selain memutar bentuk, anda juga boleh menskalakannya. Ini boleh dicapai menggunakan kaedah skala() kelas AffineTransform. Kaedah ini mengambil dua hujah: faktor skala x dan y.

Sebagai contoh, kod berikut menskalakan bentuk dengan faktor 2:

<code class="java">at.scale(2, 2);</code>

Setelah anda menggunakan transformasi penskalaan kepada bentuk, anda boleh melukisnya menggunakan kaedah draw() kelas Graphics2D.

Sebagai contoh, kod berikut melukis poligon berskala:

<code class="java">g2d.draw(polygon);</code>

Menggabungkan Transformasi

Anda boleh menggabungkan berbilang transformasi dengan menggunakan kaedah concatenate() kelas AffineTransform. Kaedah ini mengambil satu lagi objek AffineTransform sebagai hujah dan menggunakannya pada transformasi semasa.

Sebagai contoh, kod berikut menggabungkan transformasi putaran dan penskalaan:

<code class="java">at.concatenate(at2);</code>

Sebaik sahaja anda telah menggabungkan transformasi, anda boleh menerapkannya pada bentuk menggunakan kaedah transform() kelas Shape.

Sebagai contoh, kod berikut menggunakan transformasi gabungan pada poligon:

<code class="java">at.transform(polygon, polygon);</code>

Sekali anda telah menggunakan penjelmaan gabungan pada bentuk, anda boleh melukisnya menggunakan kaedah draw() kelas Graphics2D.

Sebagai contoh, kod berikut melukis poligon yang diubah:

<code class="java">g2d.draw(polygon);</code>

Atas ialah kandungan terperinci Bagaimana untuk Memutar Bentuk Secara Menegak Sekitar Paksi-X di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn