# Getting a line to move along a tangent line of a circle in machining

I have a point following the path of the circle, and at a certain time I want this point to "break" and go along the tangent line. How can I find this? I was told that the derivative

x = -sin (time)

and

y = -sin (time)

(not sure if I understand part of the time what I was told) but I don't see how it is enough to make sense to travel this line. Any tips? This is what I currently have.

``````/*
Rotor draws circle for random period of time, then moves
in a straight direction for a random period of time, beginning a
new circle
*/

Rotor r;
float timer = 0;
boolean freeze = false;

void setup() {
size(1000, 600);
smooth();
noFill();
frameRate(60);
background(255);

timeLimit();
r = new Rotor(100, 100, random(40, 100));
}

void draw() {
timer = timer + frameRate/1000;

if(timer > timeLimit()) {
timer = 0;
timeLimit();

if(freeze == true) {
freeze = false;
} else {
freeze = true;
}
}

if(!freeze) {
r.drawRotor();
} else {
}
}

float timeLimit() {
float timeLimit = random(100);
return timeLimit;
}
```

```

Rotor class:

``````class Rotor {

color c;
int thickness;
float xPoint;
float yPoint;
float nXPoint;
float nYPoint;
float angle = 0;
float centerX;
float centerY;
float pointSpeed = frameRate/100;

Rotor(float cX, float cY, float rad) {
c = color(0);
thickness = 1;

stroke(c);
strokeWeight(thickness);

centerX = cX;
centerY = cY;
}

void drawRotor() {
angle = angle + pointSpeed;
xPoint = centerX + cos(angle) * radius;
yPoint = centerY + sin(angle) * radius;
ellipse(xPoint, yPoint, thickness, thickness);
strokeWeight(2);
ellipse(centerX, centerY, 5, 5);
}

xPoint = -sin(angle);//need tangent of circle
yPoint = -cos(angle);
ellipse(xPoint, yPoint, 4, 4);
//then set new center x and y
}

void drawNewRotor(float cX, float cy, float rad) {

}

}
```

```
+3

source to share

``````int f =100;
size(300,300);
stroke(0);
translate(width/2, height/2);
for(int i = 0; i< 360; i++){
}
```

```
+3

source

All Articles