"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > मैं जावा में x-अक्ष के चारों ओर किसी आकृति को लंबवत कैसे घुमा सकता हूँ?

मैं जावा में x-अक्ष के चारों ओर किसी आकृति को लंबवत कैसे घुमा सकता हूँ?

2024-11-17 को प्रकाशित
ब्राउज़ करें:921

How can I rotate a shape vertically around the x-axis in Java?

किसी आकृति को 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