1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
|
#include "ofApp.h"
int MAX_POINTS=30000;
int NUM_POINTS=1024;
int LASER_INTENSITY=37;
//--------------------------------------------------------------
void testApp::setup(){
laser.set_pts(MAX_POINTS);
laser.set_intensity(LASER_INTENSITY);
}
//--------------------------------------------------------------
void testApp::update(){
ofSetWindowTitle(ofToString(ofGetFrameRate(), 2));
}
//--------------------------------------------------------------
void testApp::draw(){
ofBackground(0);
ofSetColor(255,255,255);
/*
if (line.size()){
current++;
}
ofPolyline todraw;
for (int i=max(0,min(current,(int)line.size())) ;i<line.size();i++){
todraw.addVertex(line[i]);
}
what should the default coordinate system be?
centred?
the coordinate system goes from 0-4096 in X and Y
It's preferable that drawing is centred around 2000
Let's offset the centre of the screen to 0 and draw natively from there
Let's apply a scaling factor which can increase coords
And a calibration/ warp
The aim is to be able to preview in any size window
todraw.draw();
*/
float pfactor=(PI*2)/NUM_POINTS;
colourPolyline line;
for (int i=0;i<NUM_POINTS;i++){
line.addVertex(
((cos(float(i)*pfactor)+1)*512),
((sin(float(i)*pfactor)+1)*512),
(sin(float(i+(ofGetElapsedTimef()*30))*pfactor)+1)*128,
(sin(float(i+(ofGetElapsedTimef()*57))*pfactor)+1)*128,
(sin(float(i+(ofGetElapsedTimef()*101))*pfactor)+1)*128
);
}
line.draw();
laser.draw(line);
}
//--------------------------------------------------------------
void testApp::keyPressed(int key){
}
//--------------------------------------------------------------
void testApp::keyReleased(int key){
}
//--------------------------------------------------------------
void testApp::mouseMoved(int x, int y ){
/// int i = 1;
/// while ( i<bounds.size()) {
/// float angle = atan2(line[i-1].y - line[i].y, line[i-1].x - line[i].x);
/// bounds[i].set(bounds[i-1].x - cos(angle) * 20, bounds[i-1].y - sin(angle) * 20);
/// i++;
/// }
}
//--------------------------------------------------------------
void testApp::mouseDragged(int x, int y, int button){
//line.addVertex(x, y);
}
//--------------------------------------------------------------
void testApp::mousePressed(int x, int y, int button){
//line.clear();
//current=-100;
}
//--------------------------------------------------------------
void testApp::mouseReleased(int x, int y, int button){
}
//--------------------------------------------------------------
void testApp::windowResized(int w, int h){
}
//--------------------------------------------------------------
void testApp::gotMessage(ofMessage msg){
}
//--------------------------------------------------------------
void testApp::dragEvent(ofDragInfo dragInfo){
}
|