Tyler Altenhofen / MVC

Files at this revision

API Documentation at this revision

Comitter:
tyleralt
Date:
Mon Aug 17 21:56:25 2015 +0000
Parent:
4:f1e33a234a74
Commit message:
export commit;

Changed in this revision

EuclidPoint.cpp Show annotated file Show diff for this revision Revisions of this file
Point.cpp Show annotated file Show diff for this revision Revisions of this file
Point.h Show annotated file Show diff for this revision Revisions of this file
View.cpp Show annotated file Show diff for this revision Revisions of this file
View.h Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show diff for this revision Revisions of this file
--- a/EuclidPoint.cpp	Tue May 12 16:21:33 2015 +0000
+++ b/EuclidPoint.cpp	Mon Aug 17 21:56:25 2015 +0000
@@ -8,7 +8,7 @@
         degree = 360 + degree;
     }
     double dradius = sqrt((double)(x * x ) + (double)(y * y));
-    int radius = rint(dradius) - 1; 
+    int radius = rint(dradius) - 2; 
     Point pointer = Point(degree, z, radius);
     return pointer;
 }
--- a/Point.cpp	Tue May 12 16:21:33 2015 +0000
+++ b/Point.cpp	Mon Aug 17 21:56:25 2015 +0000
@@ -3,18 +3,18 @@
 //*********************point class************************//
 
 Point :: Point (void){
-    positionRadian = 180;
+    positionRadian = 90;
     positionHeight = 4;
     positionDistance = 8;
-    //int offAngles [8] = {-3, 174, 44, 228, 90, 270, 135, 315};
     offAngles[0] = -6;
     offAngles[1] = 174;
     offAngles[2] = 44;
     offAngles[3] = 228;
-    offAngles[4] = 90;
-    offAngles[5] = 270;
-    offAngles[6] = 135;
+    offAngles[4] = 92;
+    offAngles[5] = 275;
+    offAngles[6] = 145;
     offAngles[7] = 323;
+    //Point(90, 4, 8);
 }
 
 Point :: Point (int posRadian, int posHeight, int posDistance){
@@ -25,13 +25,17 @@
     offAngles[1] = 174;
     offAngles[2] = 44;
     offAngles[3] = 228;
-    offAngles[4] = 90;
-    offAngles[5] = 270;
-    offAngles[6] = 135;
+    offAngles[4] = 92;
+    offAngles[5] = 275;
+    offAngles[6] = 145;
     offAngles[7] = 323;
-}     
+}    
+
 int Point :: getArraySlice (void){
-    return (int) (positionRadian + (offAngles[positionHeight]))%360;
+    return ((positionRadian + offAngles[positionHeight])%360);
+}
+int Point :: getDegree (void){
+    return positionRadian % 360;
 }
 char Point :: getIdentifyingChar(void){
     return 0x01 << positionHeight;
--- a/Point.h	Tue May 12 16:21:33 2015 +0000
+++ b/Point.h	Mon Aug 17 21:56:25 2015 +0000
@@ -8,6 +8,7 @@
     Point ();
     Point (int , int , int );
     int getArraySlice(void);
+    int getDegree(void);
     char getIdentifyingChar(void);
     int getPositionDistance(void);
     void moveUp();
--- a/View.cpp	Tue May 12 16:21:33 2015 +0000
+++ b/View.cpp	Mon Aug 17 21:56:25 2015 +0000
@@ -1,6 +1,6 @@
 #include "mbed.h"
 #include <vector>
-#define BUFFER_SIZE 16
+#define BUFFER_s 16
 #define NUMBER_OF_SLICES 360
 #include "View.h"
 #include "Point.h"
@@ -75,7 +75,7 @@
             slice_data [i][j] = 0x00;
         }
     }
-    slice_data [1][1] = 0xFF;
+    //slice_data [1][1] = 0xFF;
 }
 void View :: addPoint(Point pointer){
     int arrSlice = pointer.getArraySlice();
@@ -90,7 +90,7 @@
     }
 }
 
-void View :: addEucPoint(EuclidPoint euc){
+void View :: addFilledEucPoint(EuclidPoint euc){
     int x = euc.x;
     int y = euc.y;
     Point pointer = euc.getPoint();
@@ -99,14 +99,55 @@
     int distance = pointer.getPositionDistance();
     
     addValue(arrSlice, distance, c);
-    slice_data[arrSlice][distance] |= c;
-    
+    /*
+    int degree = (atan2((double)y, (double)x)) * 57.295;
+    if (degree < 0){
+        degree = 360 + degree;
+    }
+    double dradius = sqrt((double)(x * x ) + (double)(y * y));
+    int radius = rint(dradius) - 2; 
+    Point pointer = Point(degree, z, radius);
+    return pointer;
+    */
+    int orgDegree = pointer.getDegree();
+    int degree = orgDegree;
+    int counter = 0;
+    while (isAtPoint(distance + 2, degree, x, y) && counter < 15){
+        int newSlice = (arrSlice + counter) % 360;
+        addValue(newSlice, distance, c);
+        degree ++;
+        counter ++;
+    }
+    degree = pointer.getDegree();
+    while (isAtPoint(distance + 2, degree, x, y) && counter > -15){
+        int newSlice = (arrSlice + counter) % 360;
+        addValue(newSlice, distance, c);
+        degree --;
+        counter --;
+    }
+/*
     int divider = 1 + ((distance)/ 4);
     int reach = rint((double)3 / divider);
     for (int i = 0 ; i < reach; i ++){
         addValue((arrSlice + i)%360, distance, c);
         addValue((arrSlice - i)%360, distance, c);
     }
+    */
+}
+void View :: addEucPoint(EuclidPoint euc){
+    int x = euc.x;
+    int y = euc.y;
+    Point pointer = euc.getPoint();
+    int arrSlice = pointer.getArraySlice();
+    char c = pointer.getIdentifyingChar();
+    int distance = pointer.getPositionDistance();
+    addValue(arrSlice, distance, c);
+    
+}
+
+bool View :: isAtPoint(int radius, int degree, int x, int y){
+    return (y == rint((double) radius * sin(degree/ 57.2957)) && x == rint((double) radius * cos(degree/57.2957)));
+    
 }
 void View :: drawSquare (int x, int y, int z, int size){
     for(int i = 0; i < size; i++){
--- a/View.h	Tue May 12 16:21:33 2015 +0000
+++ b/View.h	Mon Aug 17 21:56:25 2015 +0000
@@ -16,11 +16,13 @@
     public :
     int current_slice;
     View();
+    bool isAtPoint(int, int, int, int);
     void nextLedPush(void);
     void resetCount(void);
     void resetDisplay(void);
     void setCurrentSlice(int);
     void addPoint(Point);
+    void addFilledEucPoint(EuclidPoint);
     void addEucPoint(EuclidPoint);
     void addBlock(Block);
     void drawSquare (int, int, int, int);
--- a/main.cpp	Tue May 12 16:21:33 2015 +0000
+++ b/main.cpp	Mon Aug 17 21:56:25 2015 +0000
@@ -1,6 +1,6 @@
 #include "mbed.h"
 #include <vector>
-#define BUFFER_SIZE 16
+#define BUFFER_ 16
 #define NUMBER_OF_SLICES 360
 #include "Point.h"
 #include "View.h"
@@ -29,7 +29,7 @@
 //the View
 View display;
 
-Block blocks [3];
+Block blocks [8];
 
 
 
@@ -42,6 +42,11 @@
     display.addBlock(blocks[0]);
     display.addBlock(blocks[1]);
     display.addBlock(blocks[2]);
+    display.addBlock(blocks[3]);
+    display.addBlock(blocks[4]);
+    display.addBlock(blocks[5]);
+    display.addBlock(blocks[6]);
+    display.addBlock(blocks[7]);
 }
 
 void rotate_sense(){
@@ -97,25 +102,25 @@
 void parseMapMode(char c){
     switch(c){
         case 'w': 
-        for (int i = 0; i < 3; i ++){
+        for (int i = 0; i < 8; i ++){
             blocks[i].moveOut();
         }
         updateMap();
             break;
         case 's':
-        for (int i = 0; i < 3; i ++){
+        for (int i = 0; i < 8; i ++){
             blocks[i].moveIn();
         }
         updateMap();
             break;
         case 'a':
-        for (int i = 0; i < 3; i ++){
+        for (int i = 0; i < 8; i ++){
             blocks[i].moveLeft();
         }
         updateMap();
             break;
         case 'd':
-        for (int i = 0; i < 3; i ++){
+        for (int i = 0; i < 8; i ++){
             blocks[i].moveRight();
         }
         updateMap();
@@ -149,13 +154,7 @@
             break;
         default: return;
     }
-    Point startPoint = eucPointer.getPoint();
-    Point endPoint = eucPointer.getEndPoint();
-    //bt.printf("\r\n");
-    //bt.printf("points%i , %i , %X \r\n", eucPointer.x, eucPointer.y,eucPointer.z);
-    //bt.printf("drawingEucPointer Starting %i , %i , %X \r\n", startPoint.getArraySlice(), startPoint.getPositionDistance(),startPoint.getIdentifyingChar());
-    //bt.printf("drawingEucPointer Ending %i , %i , %X \r\n", endPoint.getArraySlice(), endPoint.getPositionDistance(),endPoint.getIdentifyingChar());
-    display.addEucPoint(eucPointer);
+    display.addFilledEucPoint(eucPointer);
 }
 
 void parseBt(char c){
@@ -202,9 +201,15 @@
     blocks[0] = Block( 3, 4, 0, 4,6);
     blocks[1] = Block ( -4, -4, 1 ,4, 3);
     blocks[2] = Block ( 5, -7, 2 ,5, 4);
+    blocks[3] = Block (-5, 5, 0, 3, 7);
+    blocks[4] = Block( 15, 8, 1, 4,6);
+    blocks[5] = Block ( 15, -4, 0 ,5, 7);
+    blocks[6] = Block ( 22, -7, 2 ,6, 4);
+    blocks[7] = Block (21, 5, 2, 4, 4);
+    
     pc.printf("started");
     bt.printf("bluetooth started");
-    mode = eucDraw;
+    mode = map;
     firstTime = true;
     current_slice = 100;
     display.resetDisplay();
--- a/mbed.bld	Tue May 12 16:21:33 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-http://mbed.org/users/mbed_official/code/mbed/builds/8ab26030e058
\ No newline at end of file