ELEC2645 (2018/19) / Mbed 2 deprecated el17cd

Dependencies:   mbed

Committer:
el17cd
Date:
Fri Feb 22 14:01:20 2019 +0000
Revision:
3:2e31dfcb712a
Parent:
2:a5bc7b3779f7
Child:
4:759a5c34e239
Rasteriser now working with lcd

Who changed what in which revision?

UserRevisionLine numberNew contents of line
el17cd 1:044238f7bdda 1 #include "mbed.h"
el17cd 1:044238f7bdda 2 #include "Rasturizer.h"
el17cd 2:a5bc7b3779f7 3
el17cd 1:044238f7bdda 4
el17cd 3:2e31dfcb712a 5
el17cd 3:2e31dfcb712a 6
el17cd 3:2e31dfcb712a 7 Rasturizer::Rasturizer(Face face, N5110 lcd){
el17cd 3:2e31dfcb712a 8 lcd.init();
el17cd 1:044238f7bdda 9 float points[4][2] = {{rand()%20,rand()%20},{20+rand()%20, rand()%20}, {20+rand()%20,20+rand()%20}, {rand()%20,20+rand()%20}};
el17cd 1:044238f7bdda 10
el17cd 1:044238f7bdda 11 int diffX1 = points[0][0]-points[1][0];
el17cd 1:044238f7bdda 12 int diffY1 = points[0][1]-points[1][1];
el17cd 1:044238f7bdda 13 int diffX2 = points[2][0]-points[3][0];
el17cd 1:044238f7bdda 14 int diffY2 = points[2][1]-points[3][1];
el17cd 1:044238f7bdda 15
el17cd 1:044238f7bdda 16 if (abs(diffX1) > abs(diffX2)){
el17cd 1:044238f7bdda 17
el17cd 1:044238f7bdda 18 float step = (float)diffY1/(float)diffX1;
el17cd 1:044238f7bdda 19 float stepSmall1 = (float)diffX2/(float)diffX1;
el17cd 1:044238f7bdda 20 float stepSmall2 = (float)diffY2/(float)diffX1;
el17cd 1:044238f7bdda 21 lcd.printString("top",0,0);
el17cd 1:044238f7bdda 22 for(int s = 0; s<= abs(diffX1)-1; s++){
el17cd 1:044238f7bdda 23 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);
el17cd 1:044238f7bdda 24 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);
el17cd 1:044238f7bdda 25 }
el17cd 1:044238f7bdda 26 lcd.printString("a",10,0);
el17cd 1:044238f7bdda 27 }
el17cd 1:044238f7bdda 28 else{
el17cd 1:044238f7bdda 29 lcd.printString("bottom",0,0);
el17cd 1:044238f7bdda 30 float step = (float)diffY2/(float)diffX2;
el17cd 1:044238f7bdda 31 float stepSmall1 = (float)diffX1/(float)diffX2;
el17cd 1:044238f7bdda 32 float stepSmall2 = (float)diffY1/(float)diffX2;
el17cd 1:044238f7bdda 33
el17cd 1:044238f7bdda 34 for(int s = 0; s<= abs(diffX2)-1; s++){
el17cd 1:044238f7bdda 35 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);
el17cd 1:044238f7bdda 36 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);
el17cd 1:044238f7bdda 37 }
el17cd 1:044238f7bdda 38 }
el17cd 1:044238f7bdda 39 for (int i = 0; i < 3; i++){
el17cd 1:044238f7bdda 40 lcd.drawLine(points[i][0],
el17cd 1:044238f7bdda 41 points[i][1],
el17cd 1:044238f7bdda 42 points[i+1][0],
el17cd 1:044238f7bdda 43 points[i+1][1],
el17cd 1:044238f7bdda 44 1);
el17cd 1:044238f7bdda 45 }
el17cd 1:044238f7bdda 46 lcd.drawLine(points[0][0],
el17cd 1:044238f7bdda 47 points[0][1],
el17cd 1:044238f7bdda 48 points[3][0],
el17cd 1:044238f7bdda 49 points[3][1],
el17cd 1:044238f7bdda 50 1);
el17cd 3:2e31dfcb712a 51
el17cd 1:044238f7bdda 52 }