النتائج 1 إلى 4 من 4

الموضوع: الدرس الثالث في السيلفر لايت ( أساسيات الرسم )

  1. #1

    الدرس الثالث في السيلفر لايت ( أساسيات الرسم )



    السلام عليكم

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

    كما أشرت لاحقا بأنني سأتكلم قليلا عن الزامل وكيفية كتابة وسومها يدويا ، ومع أن البليند يغني عن كل هذا ولكن يجب أن نعرف بعض الأدوات في الزامل

    إذا كنت عزيزي القارئ قد تعاملت سابقا مع WPF فهذا شيء رائع وسيريحك ولن تنظر لهذا الدرس الا نظرة لتراجع بعض الأمور لا أكثر
    ولكن عليك أن تعلم أن الزامل هنا لا تدعم كافة الصيغ لانني اشرت سابقا بان السيلفرلايت لن يصل لكفاءة برامج سطح المكتب



    وسم البداية


    وسم البداية كما تعلمون للأكس ان أل وسم ضروري وأول وسم في الزامل هنا هو الكونفاس
    كود:
    <Canvas xmlns="http://schemas.microsoft.com/client/2007"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    ...
    </Canvas>
    تستطيع أن تحدد أبعاد الوسم أو خلفيته ولو كنت تستخدم البليند ستجد أن هذا الوسم يظهر عندك وكأنه أداة بخصائص عادية


    لنجرب أن نكتب شيئا ما هنا

    مثلا أول جملة

    كود:
    <TextBlock>أول جملة</TextBlock>
    وسم التكست بلوك وسم خاص لكتابة نصوص بداخله

    وسم النص وسم اعتيادي حيث به خصائص مثل لون الخط ، حجمه ، نوعه .....

    في ال XHTML كنا نكتب <br / > للسطر الجديد


    ما البديل هنا ؟؟

    نفس الصيغة ولكن غير البريك الى <LineBreak />
    وعندها تكون قد نزلت سطر جديد

    _____________________________________________________________________
    _____________________________________________________________________


    لننظر الآن للاشكال التي امامنا
    ونأتي لأبسط شكل ألا وهو الخط المستقيم

    لنحاول مثلا أن نرسم سطر جديد

    كود:
    <Line  X1="100" Y1="20" X2="150" Y2="150" />
    طبعا الخط له 4 نقاط

    الاحداثي السيني والصادي لنقطة البداية
    وكذلك الاحداثيات لنقطة النهاية

    امر بسيط

    ماذا لو اردنا ان نغير خصائص الخط ؟؟
    هناك خاصيتين الأولى
    Stroke
    وهي مسؤولة عن لون الخط

    والثانية
    StrokeThickness
    طبعا من اسمها سمك الخط
    الاولى تأخذ اسماء الوان والثانية تأخذ قيم عددية
    أمر بسيط

    ماذا لو أردنا ان نرسم شكل بخطين
    كالزاية مثلا

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

    لنرى الآن المثلث

    المثلث شكل هندسي يتكون من 3 ظاضلاع يمكن تعبئته بلون او تدريج أو كما تشاء

    لنجرب أن نرسم مثلم ونلونه

    كود:
    <Polygon Points="100,20 350,200 50,200"
    		Stroke="Black" StrokeThickness="8" Fill="#FF00BBFF" />


    لو اردت أن ترسم مثلث عن طريق الزامل فأقترح إذا كنت لم تدرس رياضيات خاصة بالجامعة أن تراجع الهندسة التحليلة للمرحلة الثانوية فهي ستفيدك ( لا اعلم اذا ما زالت تدرس بالمنهج الان )

    لاحظ اننا اضفنا خاصية جديدة وهي Fill وهي مسؤولة عن اللون الداخلي

    لنزود ضلع للمثلث وسنجد اننا حصلنا على شكل رباعي ( مربع ، مستطيل ، معين ، شبه منحرف ، شكل غير منتظم )

    <Rectangle>

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

    كود:
    <Rectangle Width="231" Height="222" Fill="#FFFF3800" Stroke="Black" StrokeThickness="8" Canvas.Left="65" Canvas.Top="110"/>


    نجد هنا ايضا خاصيتين قمت باضافتها وهما
    Canvas.Left="65"
    Canvas.Top="110

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

    لنفترض أنك رسمت شكلا ولم تحدد له الحداثيات البداية

    فمن المنطقي أن تكون الإحداثيات هي الزوج المرتب (0 ، 0 )
    وهي الزاوية العليا اليسار


    ولننظر الآن للشكل الجميل ألا وهو الدائرة

    ما هي الدائرة
    هي مجموعة من النقاط المتتالية تبعد عن نقطة بعد متساوي

    طبعا لم أقصد هذا الأمر لأننا لا ندرس رياضيات

    أريد أن أقول بأنها شكل بيضاوي تساوى فيه الطول والعرض

    لذلك عند رسمها سنرسم شكل بيضاوي الطول والعرض متساويين

    كود:
    <Ellipse Width="122" Height="122" Fill="#FF7700FF" Stroke="Black" StrokeThickness="8" Canvas.Left="195" Canvas.Top="272"/>


    نأتي للشكل الآخير والذي يعطيك كامل الحرية في الرسم وأنصحك باستخدام البليند برسمه لكي لا تضيع الوقت
    <Path>

    واسمحوا لي بأن أعرفكم إلى ألوان علمي : العلم الفلسطيني


    تفضلو هذه الخرابيش والصقوها ستحصلون على شكل مماثل كالشكل التالي

    كود:
    <Path Data="M 20,10 L 40,70"
    		Stroke="White" StrokeThickness="15" Canvas.Left="83.592" Canvas.Top="33.335" />
    
    <Path Data="M 20,20 L 50,70"
    		Stroke="Red" StrokeThickness="5" Canvas.Left="97.878" Canvas.Top="56.165" />
    
    <Path Data="M 50,50 A 50,50 90 0 1 100,50"
    		Stroke="Black" StrokeThickness="5" />
    <Path Data="M 125,75 Q 200,100 175,125"
    		Stroke="Green" StrokeThickness="5" Width="110.75" Stretch="Fill" Canvas.Left="46.763" Height="130.707" Canvas.Top="8" />
    <Path Data="M 195,95 L 205,105 M 205,95 L 195,105"
    Stroke="Black" StrokeThickness="2" />
    <Path Data="M 120,170 L 130,180 M 130,170 L 120,180"
    Stroke="Black" StrokeThickness="2" />
    <Path Data="M 15,120 L 25,130 M 25,120 L 15,130"
    Stroke="Black" StrokeThickness="2" />


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

    إذا كنت مبرمج فيجوال فيسك ستتذكر الخاصية Zorder
    ونجد نفسها هنا ZIndex

    كود:
    <Ellipse Canvas.ZIndex="2" Width="79" Height="86" Fill="#FFCC1919" Stroke="Black" StrokeThickness="2" Canvas.Left="27" Canvas.Top="40"/>
    	<Rectangle Canvas.ZIndex="1" Width="113" Height="85" Fill="#FF196BCC" Stroke="Black" StrokeThickness="2" Canvas.Left="65" Canvas.Top="67"/>



    جرب غير القيم


    كود:
    <Ellipse Canvas.ZIndex="0" Width="79" Height="86" Fill="#FFCC1919" Stroke="Black" StrokeThickness="2" Canvas.Left="27" Canvas.Top="40"/>
    	<Rectangle Canvas.ZIndex="1" Width="113" Height="85" Fill="#FF196BCC" Stroke="Black" StrokeThickness="2" Canvas.Left="65" Canvas.Top="67"/>
    لنرى


    ستحصل على التالي




    وسم الصورة
    وسم الصورة مثل كافة الوسم في الخصائص ولكن أضف عليه مصدر الصورة
    <Image Source="kh.jpg" />

    التحولات

    التحولات أمر أساسي في الرسم وهي تستخدم في حالة مثلا إذا أردنا أن ندو الشكل الموجود امامنا أو نكبره .....


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


    كود:
    	<Rectangle Width="135" Height="135" Fill="#FF196BCC" Stroke="Black" StrokeThickness="2" Canvas.Left="62" Canvas.Top="41" RenderTransformOrigin="0.5,0.5">
    		<Rectangle.RenderTransform>
    			<TransformGroup>
    				<ScaleTransform ScaleX="1" ScaleY="1"/>
    				<SkewTransform AngleX="0" AngleY="0"/>
    				<RotateTransform Angle="-49.648"/>
    				<TranslateTransform X="0" Y="0"/>
    			</TransformGroup>
    		</Rectangle.RenderTransform>
    	</Rectangle>

    لاحظ معي وسم المربع وضعت بداخله الوسم المسؤول عن التحول
    <Rectangle.RenderTransform>
    ثم وضعت التحول بداخل الوسم
    <Rectangle.RenderTransform>



    ولنرى التحولات الممكنة
    RotateTransform : تدير الشكل بناء على زواية معينة وترا ان الدوران الموجب يكون مع عقارب الساعة والزاية تبدأ العد من الحد السفلي للشكل

    ScaleTransform : يستخدم لتكبير أو تصغير الشكل وترى افتراضي ان البعد السي والصادي 1 وهو التكبير الافتراضي جرب مثلا أن تضع 2 في السيني و 2 في الصادي ستجد أن الشكل قد تضاعق في الحجم

    SkewTransform : يستخدم لإنحراف الشكل ( لم أرى الا كلمة انبعاج لتناسب المفهوم ) وساعطيكم مثال
    جرب أن تغير الارقام وضع هذه الأرقام
    <SkewTransform AngleX="4" AngleY="10"/>



    بعد الانحراف




    TranslateTransform : تحريك الشكل من مكان لمكان ومنطقيا التحريك يبدأ من نقطة البداية ، ل1لك بامكانك تغيير المحور السيني والصادي للبداية

    جميل جدا
    بتمكاني أن اضغط على زر ( لاخقا إن شاء الله ) وسيقوم هذا الزر بتحريك الشكل الذي أمامي وتصغيره وحرفه وأيضا يدوره

    أمر بسيط

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

    أتمنى أن يكون الدرس قد أعجبكم

    أخوكم خليل





    __________________
    بريدي :khalilme (at) hotmail.com
    مطور: ASP.NET, Windows Phone , Desktop Applications


  2. #2


    جهد مشكور أستاذ خليل





    __________________
    ahmed sliman .. Web Programmer
    ahmeds _ link @ hotmail . com

  3. #3
    عضو سوبر نشيط
    تاريخ التسجيل
    Mar 2000
    المشاركات
    762


    درس رائع تشكر عليه ونتمنى منك الاكمال والاجابه على الأسئلة المتعلقه حل الموضوع هذا وما قبله





    __________________
    Eng.Fedail
    Computer and Electronics Engineer

  4. #4


    أخي الثلج لم ارى اية اسئلة





    __________________
    بريدي :khalilme (at) hotmail.com
    مطور: ASP.NET, Windows Phone , Desktop Applications





ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض