sotsuron

Fork of linearMirrorMotion1017 by Hiromasa Oku

Revision:
25:423050363215
Parent:
24:ab74d2018e6c
Child:
26:74ecbf9985e1
--- a/renderclass.cpp	Tue Jul 02 08:26:45 2013 +0000
+++ b/renderclass.cpp	Wed Jul 03 07:43:48 2013 +0000
@@ -9,14 +9,14 @@
 
 inline void render::shearing(point2dl& dataBefore)
 {
-    dataBefore.x = dataBefore.x - vx * speedTimer.read_us()/100; //2000000;//dataBefore.x - speed *speedTimer.read_us()/1000000 ;//- speed * cos(angle+PI/2)*speedTimer.read_us()/800;
-    dataBefore.y = dataBefore.y - vy * speedTimer.read_us()/2000000;//dataBefore.y ;//- speed * sin(angle+PI/2)*speedTimer.read_us()/800;
+    dataBefore.x = dataBefore.x/4.0 - vx * speedTimer.read_us()/100; //2000000;//dataBefore.x - speed *speedTimer.read_us()/1000000 ;//- speed * cos(angle+PI/2)*speedTimer.read_us()/800;
+    dataBefore.y = dataBefore.y/4.0 - vy * speedTimer.read_us()/2000000;//dataBefore.y ;//- speed * sin(angle+PI/2)*speedTimer.read_us()/800;
 }
 
 inline void render::rotation(point2dl& dataBefore)
 {
     int x=dataBefore.x;
-    dataBefore.x = x + abs((int)angle) % (2 * (CENTER_AD_MIRROR_X-200)) -  CENTER_AD_MIRROR_X+200;//x + (CENTER_AD_MIRROR_X-200) * cos(angle);//radious * cos(angle) + sin(angle)*x - cos(angle)*dataBefore.y;//
+    dataBefore.x = x;//x + abs((int)angle) % (2 * (CENTER_AD_MIRROR_X-200)) -  CENTER_AD_MIRROR_X+200;//x + (CENTER_AD_MIRROR_X-200) * cos(angle);//radious * cos(angle) + sin(angle)*x - cos(angle)*dataBefore.y;//
     dataBefore.y = -dataBefore.y;//radious * sin(angle) - cos(angle)*x - sin(angle)*dataBefore.y;//
 
 }
@@ -84,6 +84,20 @@
 
 void render::draw()
 {
+    if(firstPointCounter == 0){
+                if(laserColor % 2 == 0) IO.setRedPower(translated[currentLetters].letpoints[currentPoints].laserSwitch);
+                if(laserColor % 3 == 0) IO.setGreenPower(translated[currentLetters].letpoints[currentPoints].laserSwitch);
+        firstPointCounter = 1;
+    }
+    else{
+        
+                IO.setRedPower(0);
+                IO.setGreenPower(0);
+        firstPointCounter = 0
+    }
+    
+    
+    /*
     if(translated.size()>0) {
 
         switch(rendererState) {
@@ -92,7 +106,8 @@
                 point2dl drawPoint=translated[currentLetters].letpoints[currentPoints];
                 transform(drawPoint);               // transform it with the current speed and angle
                 IO.writeOutXY(CENTER_AD_MIRROR_X + (int)drawPoint.x , CENTER_AD_MIRROR_Y + (int)drawPoint.y);
-                IO.setRedPower(translated[currentLetters].letpoints[currentPoints].laserSwitch);
+                if(laserColor % 2 == 0) IO.setRedPower(translated[currentLetters].letpoints[currentPoints].laserSwitch);
+                if(laserColor % 3 == 0) IO.setGreenPower(translated[currentLetters].letpoints[currentPoints].laserSwitch);
 
                 // move to the next point
                 currentPoints++;
@@ -107,6 +122,7 @@
                 // just wait!
                 if (lastPointCounter<WAITING_LAST) {
                 IO.setRedPower(0);
+                IO.setGreenPower(0);
                 lastPointCounter++;
                 }
                 else {
@@ -141,10 +157,11 @@
                     break;
                 }
         }
-    }
+    */
+}
 
     void render::transform(point2dl& mypoint) {
         rotation(mypoint);
         if(shearingSwitch == 1) shearing(mypoint);
-    }
+}