اذهب إلى المحتوى
  • 0

كيف أنشئ شكل هندسي معقد في جافا؟

عامر بيرادي

السؤال

Recommended Posts

  • 0

ينشأ الشكل أعلاه من دوران دائرة Ellips في جافا 2D. وباستخدام الصف AffineTransform واستدعاء الدالة getTranslateInstance لتحديد مقدار التحريك زمن ثم الدالة Rotate لتطبيق الدوران.

قم باستيراد المكتبات التالية:

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.AffineTransform;
import java.awt.geom.Ellipse2D;

import javax.swing.JFrame;
import javax.swing.JPanel;

أنشئ دائرة Ellips بالإحداثيات والقطر المناسب:

  Ellipse2D e = new Ellipse2D.Double(10, 20, 100, 60);

أنشئ حلقة تكرار والتي ستنتهي عند 360 لإتمام دورة كاملة ثم أنشئ كائن object من نوع AffineTransform واستدعي الدالة getTranslateInstance (وهي دالة Static) وحدد مقدار التحريك ثم استدعي الدالة rotate ومرر Math.toRaduis بالقيمة المناسبة للدواران.

كما في المثال التالي:

public class RotateTransformed extends JPanel {

  public void paint(Graphics g) {
    Graphics2D g2 = (Graphics2D) g;

    Ellipse2D e = new Ellipse2D.Double(10, 20, 100, 60);

    for (double i = 0; i < 360; i += 5) {
      AffineTransform at = AffineTransform.getTranslateInstance(400 / 2, 400 / 2);
      at.rotate(Math.toRadians(i));
      g2.draw(at.createTransformedShape(e));
    }
  }

  public static void main(String[] args) {
    JFrame frame = new JFrame();
    frame.add(new RotateTransformed());
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(400, 400);
    frame.setVisible(true);
  }
}

complexjava.thumb.png.7464994879142e6e45

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...