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