dae galera,
eu to fazendo um relogio em java, q mostra um circulo, e os ponteiros, mas os ponteiros tao aparecendo errado… segue o codigo:
public int[] getCoord(double sen){
int x, y, bx, by, coord[] = new int[2];
bx = (int)(150.0 * Math.sin(sen));
by = (int)(150.0 * Math.cos(sen));
x = 175 - bx;
y = 175 - by;
coord[0] = x;
coord[1] = y;
return coord;
}
esse metodo retorna a coordenada do ponto do cirvulo q vai representar a hora sendo ligado ao ponto no centro do relogio, onde o sen, eh o angulo pra apontar no relogio (0 aponta 12h, 90 3h, 180 6h…)
o circulo tem tam de 300x300 e eh desenhado na pos 25x25,
o q ta acontecendo de errado, eh q ta completando uma volta em 23 sec! as coordenadas retornadas correspondem a pontos no circulo, mas n sao coerentes com o angulo pedido…
qm puder, me ajude…
vlw
Fala
Os arqumentos de Math.sin e Math.cos tem que estar em radiandos/segundo… pra converter de graus para rd/s vc usa :
Math.toRadians(sen)
então o código fica assim :
public int[] getCoord(double sen){
int x, y, bx, by;
int coord[] = new int[2];
bx = (int)(150.0 * Math.sin(Math.toRadians(sen)));
by = (int)(150.0 * Math.cos(Math.toRadians(sen)));
x = 175 - bx;
y = 175 - by;
coord[0] = x;
coord[1] = y;
return coord;
}
Falou
,
Fábio.
ops… esquece o “por segundo” …
é só radiaNo ( que nada mais é que o comprimento do circulo comparado com o tamanho do seu raio. Uma circunferência tem 2PI radianos… )
[quote=“FabioAzul”]Fala
Os arqumentos de Math.sin e Math.cos tem que estar em radianos/segundo… pra converter de graus para rd/s vc usa :
Math.toRadians(sen)
então o código fica assim :
public int[] getCoord(double sen){
int x, y, bx, by;
int coord[] = new int[2];
bx = (int)(150.0 * Math.sin(Math.toRadians(sen)));
by = (int)(150.0 * Math.cos(Math.toRadians(sen)));
x = 175 - bx;
y = 175 - by;
coord[0] = x;
coord[1] = y;
return coord;
}
Falou
,
Fábio.[/quote]
vlw ae kra, agora funcionou perfeitamente, soh tive q trocar o x = 175 - bx; por x = 175 + bx; pq tava indo pro lado errado hehehehe
vlw ae!