منتدى طلبة كلية الهندسه بأسوان
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

منتدى طلبة كلية الهندسه بأسوان

منتدى طلبة كلية الهندسه بأسوان
 
الرئيسيةالتسجيلأحدث الصوردخول

 

 Pixel

اذهب الى الأسفل 
كاتب الموضوعرسالة
YeHi@$MmZ
مراقب عام منتدى أقسام الكليه ومشرف قسمى حاسبات وكورسات هندسيه
مراقب عام منتدى أقسام الكليه ومشرف قسمى حاسبات وكورسات هندسيه
YeHi@$MmZ


عدد المساهمات : 5020
تاريخ التسجيل : 25/06/2007
العمر : 37
الموقع : سرى
رقم العضوية : 10
Upload Photos : Pixel Upload

Pixel Empty
مُساهمةموضوع: Pixel   Pixel I_icon_minitimeالأربعاء 28 نوفمبر - 16:05

بسم الله الرحمن الرحيم

Pixel Pix

كنت أريد أن أكتب موضوع في برمجة الألعاب وفعلاً بدأت ولأكن رأيت نفسي أندرج إلى أن وصلت إلى ما سأريكم أياه ...... فتابع معي ..

سنقوم بي عملية تشريح لمعرفة كيف يتعامل الكمبيوتر مع البكسل.

سيلامس موضوعنا التالي:
أولاً: كرت الشاشة
ثانياً: البكسل وذاكرة الكمبيوتر
ثالثاً: رسم خط على الشاشة



أولاً: كرت الشاشة:

ويطلقون عليه أسماء كثيرة مثل الـ (Graphics Card, Video Card, Video Board, Video Display Board, Display Adapter, Video Adapter, Graphics Adapter), وهي قطعة (كرت) متصل مع اللوحة الأم (Mother Board) تعمل على تخزين ومعالجة الصور وتحويلها إلى إشارات لتستطيع الشاشة إظهارها, أصبحت كروت الشاشة عنصر أساسي في الكمبيوترات منذ عام 1990, وأخذ المصنعون يتفنانون بي كيفية صناعاتها إلى أن وصلوا إلى تمثيل لواقع حقيقى بستخدام أجسام ثلاثية الأبعاد, أول شركة إهتمت بمعالجة الرسومات ثلاثية الأبعاد هي 3dfx والتي أطلقت كروت الشاشة الخاصة بي الأجسام ثلاثية الأبعاد وكانت تحل الإسم voodoo وأيضاً هي من إبتكر قناه تسمى بي Graphics Pressing Units (GPUs) وهي منطقة موجودة في كرت الشاشة تقوم بي المعالجات الرياضية للأشكال ثلاثية الأبعاد, مما يريح المعالج (Processor) من هذا العبئ, والذي يؤدي بدورة إلى إسراع عمليات المعالجة للعبه, ومن الممكن أن يحوي كرت الشاشة أكثر من قناة GPU فكلما زادت القنوات إرتفعت الجودة.
من أشهر الشركات في هذا المجال هي:
NVIDIA
Geforce
ATI


أظن بأن الكلام بالأعلا لن ينفع معنا.... لننزل إلى أسفل قليلاً:

إذهب إلى سطح المكتب (Desktop)
إضغط على زر الفأرة الأيمن (Right Click)
إضغط على خصائص (Property)
إضغط على إعدادات (Settings)
سوف ترى على اليسار جملة Screen Resolutions
سوف ترى أسفلها رقم مثل 1024 by 768 pixel

نعم هذا الرقم يمثل عدد البكسل الذي يدعمة كرت الشاشة لديك وهو يختلف من نوع إلى آخر.

لننزل إلى أسفل أكثر ...


ثانياً: البكسل وذاكرة الكمبيوتر

لنبدأ ببعض القواعد العامة:
عندما نتكلم عن الشاشة فنحن نعني البكسل.
عندما نتكلم عن الذاكرة فنحن نعني البت.

الواحد بكسل يساوي 8 بت أو 1 بايت.
اللون الواحد يساوي 8 بت أو 1 بايت.

لتتوضح الفكرة أكثر لنأخذ أبسط أنماط كروت الشاشة وهو نمط الـ 13h, هذا النمط يعطي قيمة بكسل تقدر بي 320 x 200
(حيث أن الـ 320 تمثل العرض و الـ 200 تمثل الطول)
لحساب المساحة اللازمة لحجزها في الذاكرة من أجل إظهار المعطيات على الشاشة بشكل بكسل سنقوم بضرب العرض بي الطول:
320 x 200 = 64000 Byte وهذا يعني 0XA000
الشكل التمثيلي على الشاشة سيكون كالتالي:

Pixel Pix1

هذه المساحة في الذاكرة (64000 Byte) التي تكلمنا عنها بالأعلا تخزن على شكل مقطع (Segments).
ببساطة نستطيع القول بأن أي كتابة على هذه المنطقة (Segments) سيعادلها كتابة أيضاً على الشاشة .
أي يمكننا القول الكتابة على الذاكرة تكون بي نظام البت وأنها تترجم لتظهر على الشاشة بنظام البكسل.
ما رأيك الآن لنرى كيف تتم عملية الترجمة:

للكتابة على أي جزء في الذاكرة فنحن بحاجة إلى شيئين:
الأول وهي الـ Segment (المقطع)
الثانية وهي الـ Offset (الإزاحة)

من الأعلا قمنا بتحديد الـ Segment وهي 0XA000
يبقى لدينا تحديد الإزاحة : وتكون كالتالي:
يدعم هذه النمط الألوان ذات 8 bit وتحسب كالتالي 2^8 = 265
وقلنا بأن عرض البكسل في هذا النمط هو 320
وكل بكسل يساوي 8 بت
لتصبح المعادلة النهائية لحساب (الإزاحة) اللأزمة للكتابة في المقطع هي:
265 + (8*320) = 2816 أو 0XB00




أي سيصبح المؤشر يحمل القيمة 0XA000:0X0000 (وهذا هو الموقع في الذاكرة الذي تبدأ عملية كتابة المعطيات فيه لتظهر على الشاشة بشكل بكسل.

ويستمر المؤشر في القراءة إلى أن يصل إلى الإزاحة النهائية وهي كما حددنها
0XA000:0XB00
مثال برمجى بلغة ال C
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]


عدل سابقا من قبل في الأربعاء 28 نوفمبر - 16:12 عدل 1 مرات
الرجوع الى أعلى الصفحة اذهب الى الأسفل
YeHi@$MmZ
مراقب عام منتدى أقسام الكليه ومشرف قسمى حاسبات وكورسات هندسيه
مراقب عام منتدى أقسام الكليه ومشرف قسمى حاسبات وكورسات هندسيه
YeHi@$MmZ


عدد المساهمات : 5020
تاريخ التسجيل : 25/06/2007
العمر : 37
الموقع : سرى
رقم العضوية : 10
Upload Photos : Pixel Upload

Pixel Empty
مُساهمةموضوع: رد: Pixel   Pixel I_icon_minitimeالأربعاء 28 نوفمبر - 16:11


ما رأيكم الآن أن ننزل إلى أسفل أكثر ... لنرى كيفية رسم خط ..

ثالثاً: رسم خط على الشاشة


طبعاً عند الرغبة برسم خط في الشاشة عندها ستمر بنفس الخطوات بالأعلا التي تكلمنا عنها من segment و offset ولأكن تزيد عنها ببعض العمليات الحسابية كالتالي:
سنعتبر أن الشاشة عبارة عن خطوط (طول و عرض) تكون بشكل شبكة عند الرغبة في رسم خط يقطع أكثر من نقطة في هذه الشبكة ويكون الخط المراد رسمة بشكل مائل... أنظر إلى الرسم البياني بالأسفل لما أعنية:

Pixel Pix2


فعند حساب المنطقة المراد رسم الخط بها فإنه يقوم بأخذ المنطقة المحيطة به ككل ... إليك الرسم البياني لما أعنية

Pixel Pix3


ولحساب هذه النقاط نستخدم المعادلة التالية:

Pixel Pix5


حيث أن slop هو الميل

لتصبح بعد التعويض (4,32)

والآن لنطبق باقي النقاط كما في النقطة بالأعلا ليعطينا الإحداثيات التالية كما في الجدول

Pixel Pix6

Pixel Pix4

وبهذه النظرية نستطيع رسم مربع أو مستطيل بحسب الإحداثيات المعطاه

مثال برمجي لما أقصد بالغة السي:

[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]
الرجوع الى أعلى الصفحة اذهب الى الأسفل
 
Pixel
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
منتدى طلبة كلية الهندسه بأسوان :: هندسة الحاسبات والنظم :: أكــــــــــاديمى قسم حاسبــــات-
انتقل الى: