ELEC2645 (2018/19) / Mbed 2 deprecated el17cd

Dependencies:   mbed

Revision:
1:044238f7bdda
Child:
2:a5bc7b3779f7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Rasturizer/Rasturizer.cpp	Fri Feb 22 12:57:19 2019 +0000
@@ -0,0 +1,48 @@
+#include "mbed.h"
+#include "Rasturizer.h"
+#include "Face.h"
+
+Rasturizer::Rasturizer(Face face){
+    float points[4][2] = {{rand()%20,rand()%20},{20+rand()%20, rand()%20}, {20+rand()%20,20+rand()%20}, {rand()%20,20+rand()%20}};
+
+    int diffX1 = points[0][0]-points[1][0];
+    int diffY1 = points[0][1]-points[1][1];
+    int diffX2 = points[2][0]-points[3][0];
+    int diffY2 = points[2][1]-points[3][1];
+
+    if (abs(diffX1) > abs(diffX2)){
+        
+        float step = (float)diffY1/(float)diffX1;
+        float stepSmall1 = (float)diffX2/(float)diffX1;
+        float stepSmall2 = (float)diffY2/(float)diffX1;
+        lcd.printString("top",0,0);
+        for(int s = 0; s<= abs(diffX1)-1; s++){
+            lcd.drawLine(points[0][0]+s, rint(points[0][1]+step*s), rint(points[3][0]-stepSmall1*s), rint(points[3][1]-stepSmall2*s), 0); 
+            lcd.drawLine(points[0][0]+s+1, rint(points[0][1]+step*s), rint(points[3][0]-stepSmall1*s-1), rint(points[3][1]-stepSmall2*s), 0); 
+        }
+        lcd.printString("a",10,0);
+    }
+    else{
+        lcd.printString("bottom",0,0);
+        float step = (float)diffY2/(float)diffX2;
+        float stepSmall1 = (float)diffX1/(float)diffX2;
+        float stepSmall2 = (float)diffY1/(float)diffX2;
+        
+        for(int s = 0; s<= abs(diffX2)-1; s++){
+            lcd.drawLine(points[0][0]-stepSmall1*s, rint(points[0][1]-stepSmall2*s),rint(points[3][0]+s), rint(points[3][1]+step*s), 0); 
+            lcd.drawLine(points[0][0]-stepSmall1*s-1, rint(points[0][1]-stepSmall2*s),rint(points[3][0]+s+1), rint(points[3][1]+step*s), 0); 
+        }
+    }
+    for (int i = 0; i < 3; i++){
+    lcd.drawLine(points[i][0],
+                 points[i][1],
+                 points[i+1][0],
+                 points[i+1][1],
+                 1);
+    }
+    lcd.drawLine(points[0][0],
+                 points[0][1],
+                 points[3][0],
+                 points[3][1],
+                 1);
+}
\ No newline at end of file