Friday, February 17, 2012

Valentines day on the white board

I did a little thinking last Saturday. I looked up the equation for a tear drop. Then I turned it upside down and leaned it a little right and left. Here is how it came out on Tuesday.

5 comments:

  1. Just another idea Larry...

    http://mesalioasi.blogspot.com/

    ReplyDelete
  2. do you mean the blog language?
    Spanish, from argentina
    I am also developing a vplotter, but with synchronous belts instead strings

    ReplyDelete
  3. Here is a bit of the code.

    float tearAngle=0;
    float tearDistance=0;
    float tearX=0;
    float tearY=0;
    float tipX=0;
    float tipY=-8;
    float Size=1;
    float theta=0;

    void loop() {
    X=tipX;
    Y=tipY;
    WBPMove();
    digitalWrite(13,HIGH); //turns on "erase the board" led
    while (nineTen(1)){}
    nineTen(0);
    digitalWrite(13,LOW); //turns off "erase the board" led
    for (Size=0;Size<10;Size=Size+0.25){
    for (theta=0;theta<33*PI/24+.0001;theta=theta+0.01){
    tearY=-cos(theta)*Size+Size+tipY;
    tearX=sin(theta)*sin(theta/2)*Size+tipX;
    tearDistance=sqrt((tearX-tipX)*(tearX-tipX)+(tearY-tipY)*(tearY-tipY));
    tearAngle=atan2(tearY-tipY,tearX-tipX);
    X=cos(tearAngle-(PI/6))*tearDistance+tipX;
    Y=sin(tearAngle-(PI/6))*tearDistance+tipY;
    WBPMove();
    //theta = theta +0.1;
    }

    for (theta=15*PI/24;theta<2*PI+.0001;theta=theta+0.01){
    tearY=-cos(theta)*Size+Size+tipY;
    tearX=sin(theta)*sin(theta/2)*Size+tipX;
    tearDistance=sqrt((tearX-tipX)*(tearX-tipX)+(tearY-tipY)*(tearY-tipY));
    tearAngle=atan2(tearY-tipY,tearX-tipX);
    X=cos(tearAngle+(PI/6))*tearDistance+tipX;
    Y=sin(tearAngle+(PI/6))*tearDistance+tipY;
    WBPMove();
    //theta = theta +0.1;
    }
    }

    }

    ReplyDelete
  4. This comment has been removed by the author.

    ReplyDelete