• 0

كيف أحدد نقاط التقاطع لمستطيلين وتلوين المنطقة المشتركة في جافا؟

أعمل على برنامج في جافا وأحتاج لتحديد المساحة المشتركة بين مستطيلين هل من مساعدة؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

يحوي الصف Rectangle على دالة intersection تقوم بتحديد المساحة الواقعة بين مستطيلين نتيجة تقاطعهما حيث تأخذ الدالة معامل من نوع Rectangle وهو المستطيل الذي نريد إيجاد نقاط تقاطعه مع المستطيل الحالي.

تُرجع الدالة intersection كائن من نوع Rectangle وهو المستطيل الناتج من تقاطع المستطيلين.

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

import java.awt.Graphics;
import java.awt.Rectangle;

import javax.swing.JFrame;

أنشئ مستطيلين r و r1 بالاحداثيات المناسبة

 Rectangle r = new Rectangle(50, 50, 100, 100);
  Rectangle r1 = new Rectangle(100, 100, 75, 75);

اكتب الشيفرة التالية في الدالة paint والتي تقوم برسم المستطيلين واستدعاء الدالة intersection  ومن ثم تلوين المستطيل الناتج من تقاطع المستطيلين

public void paint(Graphics g) {
    g.drawRect(r.x, r.y, r.width, r.height);
    g.drawRect(r1.x, r1.y, r1.width, r1.height);
    Rectangle r2 = r.intersection(r1);
    System.out.println(r2);
    g.fillRect(r2.x, r2.y, r2.width, r2.height);
  }

المثال كامل:

public class Main extends JFrame {
  Rectangle r = new Rectangle(50, 50, 100, 100);
  Rectangle r1 = new Rectangle(100, 100, 75, 75);

  Main() {
    super("Intersection");
    setSize(250, 250);
  }

  public void paint(Graphics g) {
    g.drawRect(r.x, r.y, r.width, r.height);
    g.drawRect(r1.x, r1.y, r1.width, r1.height);
    Rectangle r2 = r.intersection(r1);
    System.out.println(r2);
    g.fillRect(r2.x, r2.y, r2.width, r2.height);
  }

  public static void main(String[] args) {
    JFrame f = new Main();
    f.setVisible(true);
  }
}

intersection.thumb.png.e498f012c5aafc0ca

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن