mercredi 1 décembre 2021

physic's car engine demo version 0.3 programmed on my smartphone!


 





خورزميات محاكات حركة السيارة
الجزء الثاني : القسم التطبيقي
هذه الفيديو  هي عبارة عن هيكل لسيارة تبرز  اهمية المعدلات التفاضلي  لحساب مسار الدواليب االمرسومة بالخطوط الحمراء كما تلاحضون و التحكم على التسارع و اتجهاه المقود عن كريق الضغط على الزر
ملاحضة : هذا البرنامج مكتوب بلغة الجافا على هاتفي النقال و تم تطوير في اوقات الفراغ في المقهى.
void motion(float dt) {
  
     v+=a*dt;
     v*=0.995;
     
     phiA+=v/RA*dt;
     phiB+= v/(RB*abs(cos(wtheta)))*dt;
     omega = v*tan(wtheta)/D;
     phi+= omega*dt;
   
      AB.x=abx*cos(phi)-aby*sin(phi); 
      AB.y=abx*sin(phi)+aby*cos(phi);
    
     
      float stepa= v/D*dt;
      float stepb= omega*dt;
     
      AR.x+=stepa*AB.x;
      AR.y+=stepa*AB.y;
     
      AL.x+=stepa*AB.x;
      AL.y+=stepa*AB.y;
      
      BR.x+= stepa*AB.x-stepb*AB.y;
      BR.y+= stepa*AB.y+stepb*AB.x;
      
      BL.x+= stepa*AB.x-stepb*AB.y;
      BL.y+= stepa*AB.y+stepb*AB.x;
     
     rot(AL,(AL.x+AR.x)/2,(AL.y+AR.y)/2,omega*dt);
     rot(AR,(AL.x+AR.x)/2,(AL.y+AR.y)/2,omega*dt);
     rot(BL,(BL.x+BR.x)/2,(BL.y+BR.y)/2,omega*dt);
     rot(BR,(BL.x+BR.x)/2,(BL.y+BR.y)/2,omega*dt);
     
      G.x=(AL.x+AR.x+BL.x+BR.x)/4;
      G.y=(AL.y+AR.y+BL.y+BR.y)/4;
     
      al.add(new PVector(AL.x,AL.y,0));
      ar.add(new PVector(AR.x,AR.y,0));
      br.add(new PVector(BR.x,BR.y,0));
      bl.add(new PVector(BL.x,BL.y,0));
   
   float fx= v*v/D*tan(wtheta);
   float fz= 10;
   alpha = 0.05*atan(fx/fz);
   }