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.
Dependencies: mbed
Diff: Rasturizer/Rasturizer.cpp
- Revision:
- 9:5915fc800824
- Parent:
- 8:a667bc5050c1
- Child:
- 10:07a23afd5088
diff -r a667bc5050c1 -r 5915fc800824 Rasturizer/Rasturizer.cpp
--- a/Rasturizer/Rasturizer.cpp Tue Feb 26 09:35:03 2019 +0000
+++ b/Rasturizer/Rasturizer.cpp Tue Mar 19 10:27:37 2019 +0000
@@ -15,40 +15,22 @@
points[vertex][axis] = face.getVertexValue(vertex, axis);
}
}
- //double avgZ = points[0][2] + points[1][2] + points[2][2] + points[3][2];//not needed if no rotation
- if (points[0][2] > 5 || points[1][2] > 5 || points[2][2] > 5|| points[3][2]>5){
+ if (points[0][2] > 20 || points[1][2] > 20 || points[2][2] > 20|| points[3][2] > 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];/*
+ int diffY2 = points[2][1]-points[3][1];
- if (abs(diffX1) > abs(diffX2)){
-
- double step = (double)diffY1/(double)diffX1;
- double stepSmall1 = (double)diffX2/(double)diffX1;
- double stepSmall2 = (double)diffY2/(double)diffX1;
- lcd.printString("top",0,0);
- for(int s = 0; s<= abs(diffX1)-1; s++){
- lcd.drawLine((rint(points[0][0]+s)/points[0][2])+42, rint((points[0][1]+step*s)/points[0][2]), rint((points[3][0]-stepSmall1*s)/points[3][2])+42, rint((points[3][1]-stepSmall2*s)/points[3][2])+21, 1);
- lcd.drawLine((rint(points[0][0]+s+1)/points[0][2])+42, rint((points[0][1]+step*s)/points[0][2]), rint((points[3][0]-stepSmall1*s-1)/points[3][2])+42, rint((points[3][1]-stepSmall2*s)/points[3][2])+21, 1);
-
- //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("bottom",0,0);
+ double step = (double)diffY2/(double)diffX2;
+ double stepSmall1 = (double)diffX1/(double)diffX2;
+ double stepSmall2 = (double)diffY1/(double)diffX2;
+
+ for(int s = 0; s<= abs(diffX2)-1; s++){
+ lcd.drawLine(rint((points[0][0]-stepSmall1*s)*(40/points[0][2]))+42, rint((points[0][1]-stepSmall2*s)*(40/points[0][2]))+21,rint((points[3][0]+s)*(40/points[3][2]))+42, rint((points[3][1]+step*s)*(40/points[3][2]))+21, 0);
+ lcd.drawLine(rint((points[0][0]-stepSmall1*s-1)*(40/points[0][2])+42), rint((points[0][1]-stepSmall2*s)*(40/points[0][2])+21),rint((points[3][0]+s+1)*(40/points[3][2]))+42, rint((points[3][1]+step*s)*(40/points[3][2]))+21, 0);
}
- else{
- lcd.printString("bottom",0,0);
- double step = (double)diffY2/(double)diffX2;
- double stepSmall1 = (double)diffX1/(double)diffX2;
- double stepSmall2 = (double)diffY1/(double)diffX2;
-
- for(int s = 0; s<= abs(diffX2)-1; s++){
- lcd.drawLine(rint((points[0][0]-stepSmall1*s)*(40/points[0][2]))+42, rint((points[0][1]-stepSmall2*s)*(40/points[0][2]))+21,rint((points[3][0]+s)*(40/points[3][2]))+42, rint((points[3][1]+step*s)*(40/points[3][2]))+21, 1);
- lcd.drawLine(rint((points[0][0]-stepSmall1*s-1)*(40/points[0][2])+42), rint((points[0][1]-stepSmall2*s)*(40/points[0][2])+21),rint((points[3][0]+s+1)*(40/points[3][2]))+42, rint((points[3][1]+step*s)*(40/points[3][2]))+21, 1);
- }
- }*/
for (int i = 0; i < 3; i++){
@@ -66,6 +48,7 @@
1);
}
}
+
void Rasturizer::clear(){
lcd.clear();
}