¿Por qué es el coseno utiliza para calcular los valores de x y seno los valores de y para un arco?
-
28-09-2019 - |
Pregunta
Estoy tratando de entender las matemáticas en esta Raphael.js demo:
Pedido el método del sector:
function sector(cx, cy, r, startAngle, endAngle, params) {
var x1 = cx + r * Math.cos(-startAngle * rad),
x2 = cx + r * Math.cos(-endAngle * rad),
y1 = cy + r * Math.sin(-startAngle * rad),
y2 = cy + r * Math.sin(-endAngle * rad);
return paper.path(["M", cx, cy, "L", x1, y1, "A", r, r, 0, +(endAngle - startAngle > 180), 0, x2, y2, "z"]).attr(params);
}
Esta es la demostración real: http://raphaeljs.com/pie.html
Mi matemática es un poco oxidado y estoy tratando de entender la función del sector - dados los parámetros startAngle y endAngle (cada uno de los valores de inicio y final entre 0 y 360 dibujo de un arco), ¿por qué esta obra de función ? p>
Solución
Todo depende de cómo se trata startAngle
y endAngle
. Parece que este es tratarlos como a partir de la posición horizontal a la derecha (es decir, un ángulo de 0 esté apuntando Medio) y clockingwise ir (por lo que un ángulo de 45 grados está apuntando hacia el sudeste.
Por lo general, en las matemáticas tenemos en cuenta los ángulos a partir de la horizontal a la derecha, pero cada vez más hacia la izquierda ... pero si le preguntas a un no-matemático para dibujar un ángulo, es muy posible tratarla de forma vertical hacia arriba (es decir, del Norte) el aumento de las agujas del reloj. Esto parece que está tomando una mezcla :) No hay realmente "malo" o respuesta "correcta" aquí -. Todo es una cuestión de definición
Puesto que las imágenes son populares, aquí están los tres sistemas que he descrito, cada uno asumiendo que la línea es de longitud r
:
matemáticas normales: anti-agujas del reloj desde el eje x
(fuente: arachsys.com )
Solicitando al hombre de la calle para dibujar un ángulo (en sentido horario desde el eje y)
Los ángulos utilizados por este código (en sentido horario desde el eje x)
Otros consejos
Basta ver lo que en realidad seno y coseno media en un círculo:
Si tiene un punto en un círculo que forma un ángulo alfa, alfa cos es la parte x del punto de un pecado alpha es la parte y.
Esta ilustración explica por qué el ángulo es negado. ??
Esto significa, que ahora se puede especificar las agujas del reloj ángulos, que la mayoría de las personas con relojes analógicos prefieren.
Debido punto arbitrario en la circunferencia con el centro (cx, cy) y el radio R tiene la coordenada siguiente (se sigue directamente de cos y Sin definiciones geométricas - relación entre longitudes de cateto y la hipotenusa correspondiente):
x = cx + R*cos(a)
y = cy + R*sin(a) for 0 <= a < 2π
Así establecimiento de límites en un ángulo que puede definir arco arbitraria.
Si se toma como 0 ° horizontal con el aumento de x y 90 ° como vertical con el aumento y luego como:
cos(0) = 1
sin(0) = 0
cos(90) = 0
sin(90) = 1
Puede variar el valor de x multiplicándolo por el coseno y variar el valor de y multiplicándolo por el seno.