![]() |
|
اقواس - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغات البرمجة الاخرى (http://vb4arb.com/vb/forumdisplay.php?fid=4) +--- قسم : قسم لغة vb6.0 (http://vb4arb.com/vb/forumdisplay.php?fid=18) +---- قسم : قسم أسئلة vb6.0 (http://vb4arb.com/vb/forumdisplay.php?fid=28) +---- الموضوع : اقواس (/showthread.php?tid=1307) |
اقواس - asto - 21-12-13 السلام عليكم كيف ننشئ أقواس بحيث عندما نضغط على كوماند 1 ينشئ قوسا ما و عندما نضغط على كوماند 2 ينشئ قوسا آخر لكن يبقى القوس الاول RE: اقواس - ناجي إبراهيم - 22-12-13 السلام عليكم... إذا كنت تقصد رسم أقواس فيمكنك استعمال الوظيفة Circle للـ Form أو الـ PictureBox و صيغتها العامة كالتالي: كود : Circle (X, Y), radius, color, start, end, aspectحيث: X و Y إحداثيا مركز الدائرة. radius نصف قطر الدائرة. color لون خط رسم الدائرة (اختياري). start زاوية بدء الرسم عند رسم قوس بدل دائرة (اختياري، و الافتراضي الزاوية 0 صفر، أي باتجاه الجانب الموجب للمحور الأفقي - أي إلى اليمين). الزاوية تقاس بالوحدات القطرية (Radians) و ليس بالدرجات (Degrees). end زاوية نهاية الرسم عند رسم قوس بدل دائرة (اختياري، و الافتراضي 2Pi أي 360 درجة). aspect نسبة التماثل (اختياري، و الافتراضي 1.0). هذه القيمة نمثل النسبة بين القطر الرأسي و القطر الأفقي. مثلاً القيمة 0.5 تعني أن القطر الرأسي نصف طول القطر الأفقي، و القيمة 2 تعني أن طول القطر الرأسي ضعف طول القطر الأفقي. * كما نلاحظ، لرسم قوس بدل دائرة نحتاج إلى تحديد زاوية بداية القوس و زاوية نهاية القوس، علماً بأن اتجاه الرسم يكون بالاتجاه الموجب، أي عكس حركة عقارب الساعة. * لتحويل الزوايا بين النظامين Degrees و Radians استعمل الدالتين التالييتين: كود : Const PI As Double = 3.14159265358979 ' قيمة ط* المثال التالي يرسم قوساً من الزاوية 45 درجة إلى الزاوية 180 درجة عند منتصف النافذة و نصف قطره ربع عرض النافذة: كود : Me.Circle (ScaleWidth / 2, ScaleHeight / 2), ScaleWidth / 4, , DegToRad(45), DegToRad(180)* المثال التالي يرسم قطعة فطيرة (Pie ) من الزاوية 45 درجة إلى الزاوية 180 درجة عند منتصف النافذة و نصف قطره ربع عرض النافذة:كود : Me.Circle (ScaleWidth / 2, ScaleHeight / 2), ScaleWidth / 4, , -DegToRad(45), -DegToRad(180)* لاحظ علامتي السالب مع زاويتي البداية و النهاية. إشارات السالب هنا لا تعني أن الزاوية سالبة، و إنما تعني وصل طرف القوس بمركز الدائرة (رسم نصف قطر إلى طرف القوس). * إذا أردت رسم نصف قطر إلى الزاوية صفر فاستعمل عدداً سالباً صغيراً جداً بدل الصفر (لأنه لا يوجد صفر سالب): كود : Me.Circle (ScaleWidth / 2, ScaleHeight / 2), ScaleWidth / 4, , -0.00000001, -DegToRad(90)نرجو الاستفادة و السلام. RE: اقواس - asto - 22-12-13 ممتاز اخي ناجي و مشكور جدا طيب كيف نحسب الزاويتين في كود رسم القوس علما انه لدينا ال 3 نقاط هي احداثيات 3 كوماندات command1.top= 3000 command1.left=5000 command2.left=5400 command3.left=5000 command2.top=3350 command3.top=3850 بالاجابة على السؤال التالي يمكنني التحكم الكامل برسم القوس و مع الف شكر RE: اقواس - ناجي إبراهيم - 22-12-13 السلام عليكم... إقتباس :علما انه لدينا ال 3 نقاط هي احداثيات 3 كوماندات عفواً... ما الذي تريد أن تفعله بالـ Commands الثلاثة، و ما هي وضعياتهم بالنسبة إلى بعضهم؟ سلام. RE: اقواس - asto - 23-12-13 لقد ابتكرت الطريقة بس بقي علي معرفة نقطة تقاطع مستقيم مع دائرة و هو يمر من كوماند 3 و كوماند 2 حيث كوماند 2 هو مركز الدائرة التي بهذا الكود ستصبح قوسا كود : Me.Circle (ScaleWidth / 2, ScaleHeight / 2), ScaleWidth / 4, , DegToRad(45), DegToRad(180) |