किसी आकृति को x-अक्ष के चारों ओर लंबवत घुमाना
प्रदान किया गया कोड दर्शाता है कि बहुभुज को कैसे घुमाया जाता है, लेकिन यह इसे चारों ओर नहीं घुमाता है एक्स-अक्ष. एक्स-अक्ष के चारों ओर ऊर्ध्वाधर घुमाव प्राप्त करने के लिए, हम बहुभुज को 90 डिग्री तक घुमा सकते हैं और फिर रेडियन में वांछित घुमाव लागू कर सकते हैं। यहां संशोधित कोड है:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class RotatingShape extends JPanel implements ActionListener {
private int[] p1x = {200, 200, 240, 240, 220, 220, 200};
private int[] p1y = {200, 260, 260, 240, 240, 200, 200};
private Polygon p1 = new Polygon(p1x, p1y, p1x.length);
private double theta = 0;
private double dt = Math.PI / 36; // Rotation speed
private Timer timer = new Timer(100, this);
public RotatingShape() {
this.setPreferredSize(new Dimension(700, 700));
this.setBackground(Color.white);
p1.translate(-50, 100);
}
@Override
public void actionPerformed(ActionEvent event) {
theta = dt;
repaint();
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
int w = this.getWidth();
int h = this.getHeight();
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
g2d.drawLine(w / 2, 0, w / 2, h);
g2d.drawLine(0, h / 2, w, h / 2);
g2d.rotate(Math.PI / 2, w / 2, h / 2); // Rotate 90 degrees to align with x-axis
g2d.rotate(theta, w / 2, h / 2); // Apply rotation around x-axis
g2d.drawPolygon(p1);
}
public void start() {
timer.start();
}
public static void main(String[] args) {
JFrame frame = new JFrame("Rotating Shape");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
RotatingShape sl = new RotatingShape();
frame.add(sl);
frame.pack();
frame.setVisible(true);
sl.start();
}
}
इस कोड में, हम g2d.rotate(Math.PI / 2, w / 2, h / 2) का उपयोग करके पेंटकंपोनेंट विधि में बहुभुज को 90 डिग्री तक घुमाते हैं। यह बहुभुज को x-अक्ष के साथ संरेखित करता है, जिससे हमें g2d.rotate(theta, w / 2, h / 2) का उपयोग करके रेडियन में वांछित रोटेशन लागू करने की अनुमति मिलती है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3