Rumah > Java > javaTutorial > teks badan

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

DDD
Lepaskan: 2024-10-26 16:07:03
asal
562 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!