الرسم ثانئى الابعاد فى الجافا باستخدام Graphics2D...مقال 3_رسم الاشكال الهندسية_ رسم المربعات و المستطيل

اذهب الى الأسفل

الرسم ثانئى الابعاد فى الجافا باستخدام Graphics2D...مقال 3_رسم الاشكال الهندسية_ رسم المربعات و المستطيل Empty الرسم ثانئى الابعاد فى الجافا باستخدام Graphics2D...مقال 3_رسم الاشكال الهندسية_ رسم المربعات و المستطيل

مُساهمة من طرف أحمد مناع في الخميس ديسمبر 05, 2019 9:54 pm

أهلا بكم 

فى هذا المقال سنتعرف كيفية رسم المربعات و المستطيل فى الجافا حيث توجد عدة طرق لفعل ذلك على النحو التالى :


1_باستخدام الاسلوب drawRect
2_باستخدام الفئة Rectangle2D 
3_باستخدام الطريقة  fillRect
4_باستخدام الاسلوب drawRoundRect 
5_باستخدام الاسلوب fillRoundRect
6_باستخدام الاسلوب draw3DRect
7_باستخدام الاسلوب fill3DRect 



أولا : الاسلوب drawRect

تقوم الدالة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] برسم مستطيل أجوف محدّد بالزاوية اليسارية العليا ، ثم بتحديد عرض وارتفاع المستطيل و ياخذ الشكل التالى :

الكود:
puplic void drawRect ( int x, int y, int width, int height )

حيث أن :


  • X : الاحداثي السيني للنقطة العلوية اليسري للمستطيل
  • Y :الاحداثي الصادي للنقطة العلوية اليسري للمستطيل
  • Width :عرض المستطيل
  • Height :ارتفاع المستطيل


مثال توضيحيى لرسم مربع و بداخلة مستطيل باستخدام الطريقة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] على النحو التالى :

الكود:


import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;

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

public class MainClass extends JPanel {

  @Override
  public void paintComponent(Graphics g) {
    
      super.paintChildren(g);
      //اشتقاق مثيل من الفئة
     Graphics2D g2d = (Graphics2D) g;
    
     g2d.setStroke(new BasicStroke (4));  // تحديد حجم وسماكة الرسم
     g2d.setColor(Color.red);             // تحديد اللون
     g2d.drawRect(25, 25, 120, 120);      // رسم مربع
    
    
     g2d.setStroke(new BasicStroke (2));  // تحديد حجم وسماكة الرسم
     g2d.setColor(Color.BLUE);           // تحديد اللون
     g2d.drawRect(50, 50, 75, 50);        // رسم مستطيل
        
      }

  public static void main(String[] args) {
    JFrame frame = new JFrame();
    frame.getContentPane().add(new MainClass());

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(480, 200);
    frame.setVisible(true);
  }
}

الاخراج :

الرسم ثانئى الابعاد فى الجافا باستخدام Graphics2D...مقال 3_رسم الاشكال الهندسية_ رسم المربعات و المستطيل 260801964

لكن عيوب هذه الطريقة أن إحداثيات هذه النقاط لابد من أن تكون أعداد صحيحة و بالتالى لا تقبل الاعداد العشرية فلا يوجد "بكسل ونصف" على الشاشة


ثانيا :استخدام كائن من الفئة Rectangle2D

تقوم الفئة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] بوصف مستطيل أو مربع محدّد بالزاوية اليسارية العليا ، ثم بتحديد عرض وارتفاع المستطيل ومن ثم تمرير هذا الوصف الى الطريقة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] لرسم الشكل المحدد و ذلك على النحو التالى :

الكود:
public void paintComponent(Graphics g) {
    
      super.paintComponent(g);
      
      
      //اشتقاق مثيل من الفئة
     Graphics2D g2d = (Graphics2D) g;
    
    
     Rectangle2D r1d = new Rectangle2D.Float(25.5f, 25.5f, 120.5f, 120.5f);
     Rectangle2D r2d = new Rectangle2D.Double(50f, 25.5f, 75f, 50.7f);
    
     g2d.setStroke(new BasicStroke (4));  // تحديد حجم وسماكة الرسم
     g2d.setColor(Color.red);             // تحديد اللون
     g2d.draw(r1d);                      // رسم مربع
    
    
    
    
     g2d.setStroke(new BasicStroke (2));  // تحديد حجم وسماكة الرسم
     g2d.setColor(Color.BLUE);           // تحديد اللون
     g2d.draw(r2d);                     // رسم مستطيل
        
      }


ثالثا :باستخدام الطريقة  fillRect

تقوم الطريقة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] برسم مستطيل معبأ باللون معين بالعرض المعطى والارتفاع المعطى، إحداثيات الركن العلوي الأيسر هي (x, y) وتاخذ الشكل التالى :

الكود:
puplic void fillRect ( int x, int y, int width, int height )

حيث أن :


  • X : الاحداثي السيني للنقطة العلوية اليسري للمستطيل
  • Y :الاحداثي الصادي للنقطة العلوية اليسري للمستطيل
  • Width :عرض المستطيل
  • Height :ارتفاع المستطيل


مثال توضيحيى لرسم مربع و بداخلة مستطيل باستخدام الطريقة drawRect على النحو التالى :

الكود:
public void paintComponent(Graphics g) {
    
      super.paintComponent(g);
      
      
      //اشتقاق مثيل من الفئة
     Graphics2D g2d = (Graphics2D) g;
        
    
     g2d.setStroke(new BasicStroke (4));  // تحديد حجم وسماكة الرسم
     g2d.setColor(Color.red);             // تحديد اللون
     g2d.fillRect(25, 25, 120, 120);      // رسم مربع
    
    
    
    
     g2d.setStroke(new BasicStroke (2));  // تحديد حجم وسماكة الرسم
     g2d.setColor(Color.BLUE);           // تحديد اللون
     g2d.fillRect(50, 50, 75, 50);        // رسم مستطيل
        
      }

الاخراج :

الرسم ثانئى الابعاد فى الجافا باستخدام Graphics2D...مقال 3_رسم الاشكال الهندسية_ رسم المربعات و المستطيل 901702063


رابعا :الاسلوب drawRoundRect

لرسم مستطيل أو مربع أجوف ذو حواف دائرية بالعرض المعطى والارتفاع المعطى، المتغيران arcWidth, & arcHeight يحددان مقدار انحناء الحواف وياخذ الشكل التالى :

الكود:
puplic void drawRoundRect ( int x, int y, int width, int height, int arcWidth, int arcHeight )

مثال توضيحيى

الكود:
@Override
  public void paintComponent(Graphics g) {
    
      super.paintComponent(g);
      
      
      //اشتقاق مثيل من الفئة
     Graphics2D g2d = (Graphics2D) g;
        
    
     g2d.setStroke(new BasicStroke (4));  // تحديد حجم وسماكة الرسم
     g2d.setColor(Color.red);             // تحديد اللون
     g2d.drawRoundRect(25, 25, 120, 120,50,50);      // رسم مربع
    
    
    
    
     g2d.setStroke(new BasicStroke (2));  // تحديد حجم وسماكة الرسم
     g2d.setColor(Color.BLUE);           // تحديد اللون
     g2d.fillRect(50, 50, 75, 50);        // رسم مستطيل
        
      }

الاخراج :

الرسم ثانئى الابعاد فى الجافا باستخدام Graphics2D...مقال 3_رسم الاشكال الهندسية_ رسم المربعات و المستطيل 951057002


خامسا :باستخدام الاسلوب fillRoundRect


لرسم مستطيل ذو حواف دائرية معبأ باللون بالعرض المعطى والارتفاع المعطى، المتغيران arcWidth, & arcHeight يحددان مقدار انحناء الحواف  إحداثيات الركن العلوي الأيسر هي (x, y)

الكود:
puplic void fillRoundRect ( int x, int y, int width, int height, int arcWidth, int arcHeight )

مثال توضيحيى :

الكود:
@Override
  public void paintComponent(Graphics g) {
    
      super.paintComponent(g);
      
      
      //اشتقاق مثيل من الفئة
     Graphics2D g2d = (Graphics2D) g;
        
    
     g2d.setStroke(new BasicStroke (4));  // تحديد حجم وسماكة الرسم
     g2d.setColor(Color.red);             // تحديد اللون
     g2d.fillRoundRect(25, 25, 200, 120,50,50);      // رسم مربع
    
    
    
    
     g2d.setStroke(new BasicStroke (2));  // تحديد حجم وسماكة الرسم
     g2d.setColor(Color.BLUE);           // تحديد اللون
     g2d.fillRect(50, 50, 75, 50);        // رسم مستطيل
        
      }

الاخراج :

الرسم ثانئى الابعاد فى الجافا باستخدام Graphics2D...مقال 3_رسم الاشكال الهندسية_ رسم المربعات و المستطيل 168799489


سادسا :باستخدام الاسلوب draw3DRect

لرسم مستطيل ثلاثي الأبعاد أجوف بالعرض المعطى والارتفاع المعطى وحدوده باللون الحالي، إحداثيات الركن العلوي الأيسر هي (x, y)، المستطيل يظهر بارزاً [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] عندما نعطي المتغير b قيمة true ويكون مجوفاً [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] عندما نعطي المتغير b قيمة false.

الكود:
puplic void draw3DRect ( int x, int y, int width, int height, boolean b )

مثال توضيحيى :

الكود:
@Override
  public void paintComponent(Graphics g) {
    
      super.paintComponent(g);
      
      
      //اشتقاق مثيل من الفئة
     Graphics2D g2d = (Graphics2D) g;
        
    
    
     g2d.setColor(Color.red);                 // تحديد اللون
     g2d.draw3DRect(25, 25, 200, 200,true);  // رسم مربع
    
    
      }

الاخراج :
الرسم ثانئى الابعاد فى الجافا باستخدام Graphics2D...مقال 3_رسم الاشكال الهندسية_ رسم المربعات و المستطيل 736773557

سابعا :باستخدام الاسلوب fill3DRec


لرسم مستطيل ثلاثي الأبعاد معبأ باللون بالعرض المعطى والارتفاع المعطى واللون الحالي، إحداثيات الركن العلوي الأيسر هي (x, y)، المستطيل يظهر بارزاً [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] عندما نعطي المتغير b قيمة true ويكون مجوفاً [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] عندما نعطي المتغير b قيمة false

الكود:
puplic void fill3DRect ( int x, int y, int width, int height, boolean b )

مثال توضيحيى :
الكود:

  @Override
  public void paintComponent(Graphics g) {
    
      super.paintComponent(g);
      
      
      //اشتقاق مثيل من الفئة
     Graphics2D g2d = (Graphics2D) g;
        
    
     g2d.setColor(Color.RED);                  // تحديد اللون
     g2d.fill3DRect(20, 20, 200, 200,true);   // رسم مربع
    
      }

الاخراج :

الرسم ثانئى الابعاد فى الجافا باستخدام Graphics2D...مقال 3_رسم الاشكال الهندسية_ رسم المربعات و المستطيل Fill3DRect

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
أحمد مناع
أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 1002
النقاط : 201794
التقيم : 120
الدولة : مصر
الجنس : ذكر

https://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة

ََ

مواضيع ذات صلة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى