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.
Revision 5:d7d16cb9c974, committed 2015-08-17
- Comitter:
- tyleralt
- Date:
- Mon Aug 17 21:56:25 2015 +0000
- Parent:
- 4:f1e33a234a74
- Commit message:
- export commit;
Changed in this revision
--- 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