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

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

عامر بيرادي

السؤال

Recommended Posts

  • 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

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

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...