بسم الله الرحمن الرحيم الحمدالله رب العالمين اما بعد: هذا الموضوع سوف يتناول فكرة السير (ترس متصل مع ترس آخر عبر حبل ) عموما في هذا الموضوع سوف نتناول فكرة رسم التروس بالمعادلات + برنام بإستخدام مكتبة Qt به صف به امرين فقط الأول لرسم الترس والثاني لتوصيل بين ترسين تحددهما انت انظر الصور ولكن كيف يتم الربط بين التروس ان فكرة الربط بين التروس هو عبار عن مماسين لترسيين لهما نفس الميل = ميل المستقيم بين نقتي التماس وهناك فكرة أخرى هندسية للرسم وهي تعتمد على مثلث ذو متوسط يمر بمركزي الترسيين انظر الرسمة (الرسمة باليد لعدم توفر برامج للرسم) 1-من الرسم نجد زاوية ميل المتوسط عن طريق نقاط مركز التروس أولا وبإستخدام معكوس الضا 2-ثم نجد الزاوية بين المتوسط والمماس العلوي او السفلي وذلك بطرح انصاف القطر من بعضها البعض وقسمته على المسافة بين المركزين وايجاد معكوس الجا 3-نطرح او نجمع الى الناتج باي/2 ونجد الجا والجتا لهما ونضربهما في نصف القطر لنجمعها مع احداثيات نصف القطر هذه ثلاث خطوات سريعة انظر الشيفرة
void gear::tailGear(int from,int to){ QGraphicsLineItem* line; // (زاوية ميل المستقيم المار بمركزي الترس ( منصف المثلث double t=atan((centers[to].y()-centers[from].y())/(centers[to].x()-centers[from].x())); // الزاوية بين المنصف ومماسي التروس double c=asin((radials[to]-radials[from])/ (pow(pow(centers[to].x()-centers[from].x(),2)+pow(centers[to].y()-centers[from].y(),2),.5))); //خط التماس العلوي double m=t+c; double y1=sin(m-pi/2)*radials[from]+centers[from].y(); double x1=cos(m-pi/2)*radials[from]+centers[from].x(); double y2=sin(m-pi/2)*radials[to]+centers[to].y(); double x2=cos(m-pi/2)*radials[to]+centers[to].x(); scene->addItem(line=new QGraphicsLineItem(QLineF(x2,y2,x1,y1))); line->setPen(QPen(QBrush(Qt::green),3,Qt::DashDotDotLine)); //خط التماس السفلي m=t-c; y1=sin(m+pi/2)*radials[from]+centers[from].y(); x1=cos(m+pi/2)*radials[from]+centers[from].x(); y2=sin(m+pi/2)*radials[to]+centers[to].y(); x2=cos(m+pi/2)*radials[to]+centers[to].x(); scene->addItem(line=new QGraphicsLineItem(QLineF(x2,y2,x1,y1))); line->setPen(QPen(QBrush(Qt::green),3,Qt::DashDotDotLine));}