Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of scoreLight_Advanced by
classSpring.cpp
00001 #include "classSpring.h" 00002 #include "myVectorClass.h" 00003 00004 //--------------------------------------------------------------------- 00005 spring::spring(){ 00006 massA = NULL; 00007 massB = NULL; 00008 } 00009 00010 //--------------------------------------------------------------------- 00011 void spring::update(){ 00012 if ((massA == NULL) || (massB == NULL)){ 00013 return; 00014 } 00015 00016 vector2Df pta = massA->pos; 00017 vector2Df ptb = massB->pos; 00018 00019 float theirDistance = (pta - ptb).length(); 00020 float springForce = (springiness * (distance - theirDistance)); 00021 vector2Df frcToAdd = (pta-ptb).normalize() * springForce; 00022 00023 massA->addForce(frcToAdd); 00024 massB->addForce(-frcToAdd); 00025 //massA->totalForce.x+=frcToAdd.x;massA->totalForce.y+=frcToAdd.y; 00026 //massB->totalForce.x-=frcToAdd.x;massB->totalForce.y-=frcToAdd.y; 00027 } 00028 00029 void spring::assymetricUpdate(){ // only second mass suffers a force 00030 if ((massA == NULL) || (massB == NULL)){ 00031 return; 00032 } 00033 00034 vector2Df pta = massA->pos; 00035 vector2Df ptb = massB->pos; 00036 00037 float theirDistance = (pta - ptb).length(); 00038 float springForce = (springiness * (distance - theirDistance)); 00039 vector2Df frcToAdd = (pta-ptb).normalize() * springForce; 00040 00041 //massA->addForce(frcToAdd); 00042 massB->addForce(-frcToAdd); 00043 //massA->totalForce.x+=frcToAdd.x;massA->totalForce.y+=frcToAdd.y; 00044 //massB->totalForce.x-=frcToAdd.x;massB->totalForce.y-=frcToAdd.y; 00045 }
Generated on Tue Jul 12 2022 18:50:26 by
1.7.2
