|
بسم الله الرحمن الرحيم
سنترف في هذا الدرس بإذن الله على دوال رسم الخطوط، المستطيلات، والدوائر أو الأشكال البيضاوية في الجافا!
رسم الخطوط، المستطيلات، والدوائر Drawing Lines, Rectangles, & Ovals:
سنناقش في هذا الجزء دوال الجرافيكس Graphics method المتوفرة في الجافا لرسم الخطوط، المستطيلات والدوائر، حيث أننا:
- نرسم الخط بتحديد إحداثيات نقطتين عليه، إحداثيات هذه النقاط لابد من أن تكون أعداد صحيحة فلا يوجد شئ اسمه "بكسل ونصف" على الشاشة :)
- نرسم المستطيل بتحديد إحداثيات الركن العلوي الأيسر (الشمالي الغربي) فيه، ثم بتحديد عرض وارتفاع المستطيل.
- نرسم الشكل البيضاوي كذلك بتحديد إحداثيات الركن العلوي الأيسر (الشمالي الغربي) فيه، ثم بتحديد عرض وارتفاع المستطيل كما توضح الصورة:
صورة (1)
ويوضح الجدول التالي الدوال التي تقوم بالرسم:
| الوصف Description |
الدالة Method |
|
puplic void drawLine ( int x1, int y1, int x2, int y2 ) |
لرسم خط يصل بين النقطتين (x1, y1) وَ (x2, y2). |
|
|
puplic void drawRect ( int x, int y, int width, int height ) |
لرسم مستطيل أجوف بالعرض المعطى والارتفاع المعطى، إحداثيات الركن العلوي الأيسر هي (x, y). |
|
|
puplic void fillRect ( int x, int y, int width, int height ) |
لرسم مستطيل معبأ باللون بالعرض المعطى والارتفاع المعطى، إحداثيات الركن العلوي الأيسر هي (x, y). |
|
|
puplic void clearRect ( int x, int y, int width, int height ) |
|
لرسم مستطيل بالعرض المعطى والارتفاع المعطى معبأ بلون الخلفية، إحداثيات الركن العلوي الأيسر هي (x, y). |
|
|
puplic void drawRoundRect ( int x, int y, int width, int height, int arcWidth, int arcHeight ) |
لرسم مستطيل أجوف ذو حواف دائرية بالعرض المعطى والارتفاع المعطى، المتغيران arcWidth, & arcHeight يحددان مقدار انحناء الحواف كما توضح الصورة (2)، إحداثيات الركن العلوي الأيسر هي (x, y). |
|
|
puplic void fillRoundRect ( int x, int y, int width, int height, int arcWidth, int arcHeight ) |
لرسم مستطيل ذو حواف دائرية معبأ باللون بالعرض المعطى والارتفاع المعطى، المتغيران arcWidth, & arcHeight يحددان مقدار انحناء الحواف كما توضح الصورة (2)، إحداثيات الركن العلوي الأيسر هي (x, y). |
|
|
puplic void draw3DRect ( int x, int y, int width, int height, boolean b ) |
لرسم مستطيل ثلاثي الأبعاد أجوف بالعرض المعطى والارتفاع المعطى وحدوده باللون الحالي، إحداثيات الركن العلوي الأيسر هي (x, y)، المستطيل يظهر بارزاً raised عندما نعطي المتغير b قيمة true ويكون مجوفاً lowered عندما نعطي المتغير b قيمة false. |
|
|
puplic void fill3DRect ( int x, int y, int width, int height, boolean b ) |
لرسم مستطيل ثلاثي الأبعاد معبأ باللون بالعرض المعطى والارتفاع المعطى واللون الحالي، إحداثيات الركن العلوي الأيسر هي (x, y)، المستطيل يظهر بارزاً raised عندما نعطي المتغير b قيمة true ويكون مجوفاً lowered عندما نعطي المتغير b قيمة false. |
|
|
puplic void drawOval ( int x, int y, int width, int height ) |
لرسم شكل بيضاوي أجوف باللون الحالي بالعرض المعطى والارتفاع المعطى، إحداثيات الركن العلوي الأيسر للمستطيل الذي يحيط بالشكل البيضاوي كما توضح الصورة (1) هي (x, y). الشكل البيضاوي يلامس المستطيل في أربع نقاط تقع كل نقطة في منتصف كل ضلع للمستطيل. المستطيل طبعاً لن يظهر على الشاشة. |
|
|
puplic void fillOval ( int x, int y, int width, int height ) |
لرسم شكل بيضاوي معبأ باللون الحالي بالعرض المعطى والارتفاع المعطى، إحداثيات الركن العلوي الأيسر للمستطيل الذي يحيط بالشكل البيضاوي كما توضح الصورة (1) هي (x, y). الشكل البيضاوي يلامس المستطيل في أربع نقاط تقع كل نقطة في منتصف كل ضلع للمستطيل. المستطيل طبعاً لن يظهر على الشاشة. |
|
 صورة (2)
سنستخدم جميع هذه الدوال تقريباً في برنامجنا التالي، مخرجات برنامجنا توضحها الصورة التالية:
 صورة (3)
أما البرنامج فهو:
|
// Drawing lines, rectangles and ovals import java.awt.*; import java.awt.event.*; import javax.swing.*;
public class LinesRectsOvals extends JFrame { private String s = "Using drawString!";
public LinesRectsOvals() { super( "Drawing lines, rectangles and ovals" );
setSize( 400, 165 ); show(); }
public void paint( Graphics g ) { g.setColor( Color.red ); g.drawLine( 5, 30, 350, 30 );
g.setColor( Color.blue ); g.drawRect( 5, 40, 90, 55 ); g.fillRect( 100, 40, 90, 55 );
g.setColor( Color.cyan ); g.fillRoundRect( 195, 40, 90, 55, 50, 50 ); g.drawRoundRect( 290, 40, 90, 55, 20, 20 );
g.setColor( Color.yellow ); g.draw3DRect( 5, 100, 90, 55, true ); g.fill3DRect( 100, 100, 90, 55, false );
g.setColor( Color.magenta ); g.drawOval( 195, 100, 90, 55 ); g.fillOval( 290, 100, 90, 55 ); }
public static void main( String args[] ) { LinesRectsOvals app = new LinesRectsOvals();
app.addWindowListener( new WindowAdapter() { public void windowClosing( WindowEvent e ) { System.exit( 0 ); } } ); } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
ملاحظات:
-
كما رأينا في الصورة؛ فإن المستطيل ثلاثي الأبعاد يتم رسمه عن طريق اللعب بلون الحواف لإظهار الشكل بارز أو مجوّف، فتظهر حافتان باللون الذي حددناه بينما ترسم الحافتان الأخريتان بنفس اللون ولكن بدرجة أغمق قليلاً، بعض الألوان يصعب رؤية الأشكال الثلاثية البعد التي ترسم بها!
-
إذا أردت رسم دائرة، اجعل قيمة العرض والارتفاع واحدة في أحد الدالتين drawOval أو fillOval. |
ساحة النقاش