بسم الله الرحمن الرحيم
إخواني الأعزاء!
إذا كان لدينا على أحد النماذج زر button ونرغب بتحريكه حركة دائرية حول نقطة معينة, فكيف يمكن ذلك ...
أرجو وضع كود يرشد للعمل (لأن الفكرة النظرية واضحة لدي وحاولت تطبيقها فلم تنحج بالشكل المطلوب)... وشكراً لكم...
بسم الله الرحمن الرحيم
إخواني الأعزاء!
إذا كان لدينا على أحد النماذج زر button ونرغب بتحريكه حركة دائرية حول نقطة معينة, فكيف يمكن ذلك ...
أرجو وضع كود يرشد للعمل (لأن الفكرة النظرية واضحة لدي وحاولت تطبيقها فلم تنحج بالشكل المطلوب)... وشكراً لكم...
المال في الغربة وطن والفقر في الوطن غربة
السلام عليكم
شيئ مثل هذا...
For i:=0 to 360 Do Begin Button1.Top:=Round(Cos(DegToRad(i))*100); Button1.Left:=Round(Sin(DegToRad(i))*100); Sleep(10); // نم قليلا end;
تم تعديل هذه المشاركة بواسطة DeltaAziz في 18 مارس 2006 في 17:42
أخي العزيز! كل الشكر لك...
الحقيقة أنني أستخدم الشيفرة ذاتها, وبالطبع مع قيم متغيرة لمركز الدوران و لنصف قطر الدوران.... لكن ما يحصل أن الدوران لا يبدأ من موضع الزر الحالي... وإنما ينتقل في البداية إلى موقع جديد يبدأ منه الدوران...
بالطبع, لقد قمت بتعريف متحول حقيقي (i) يأخذ قيمة ابتدائية معتمدة على الـ (left) الخاص بالزر (من خلال العلاقة arcsin)... لكن قيمة y هي التي لا تنجح في جميع الأحوال...
أرجو إن أمكن, إيضاح كيفية تدوير الزر من موقعه الحالي, وليس نقله إلى الموقع الموافق لـ (i=0) ثم البدء بالدوران...
شكراً لك...
المال في الغربة وطن والفقر في الوطن غربة
السلام عليكم
بالنسبة لإحداثيات دائرة فهي على هذا النحو:
Sx:= X0 + R Cos (teta) Sy:= Y0 + R Sin (teta)
أما في المعلم الإفتراضي للنوافذ في ويندوز فيجب كتابتها:
Sx.Top:= X0.top + r * Cos(teta); Sy.Left:= Y0.left + r * Sin(teta);
مع Sx,Sy هما إحداثيات الدائرة على النافذة و X0,Y0 هما إحداثيات مركزها, و r هو شعاعها.
سيكون الكود في ديلفي :
procedure TForm1.Button2Click(Sender: TObject); var teta,i:integer; b0: TPoint; const r= 20; //Rayon in pixels begin b0.X:= Button1.Top - r; b0.Y:= Button1.Left; For teta:=0 to 360 Do Begin Button1.Top:= b0.x + Round( r * Cos(teta * pi /180)); Button1.Left:= b0.Y + Round( r * Sin(teta * pi /180)); for i := 0 to 100000 do Application.ProcessMessages; end; end;
سأتغيب عن المنتدى وستكون لي زيارات خفيفة بين الحين و الحين
يا صاحب الهم إن الهم منفرج.....................أبشر بخير فإن الفارج الله.
اليأس يقطع أحيانا بصاحبه..........................لا تيأس فإن الكافي الله.
الله يحدث بعد العسر ميسرة.........................لا تفزعن فإن الصانع الله.
إذا بليت فثق بالله وارض به...................فإن الذي يكشف البلوى هو الله.
و الله ما لك غير الله من أحد.......................فحسبك الله في كل لك الله
أخوكم مراد
هذا الموضوع مغلق.