Pregunta

Estoy tratando de entender las matemáticas en esta Raphael.js demo:

http://raphaeljs.com/pie.js

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

¿Fue útil?

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

primer diagrama
(fuente: arachsys.com )

Solicitando al hombre de la calle para dibujar un ángulo (en sentido horario desde el eje y)

segundo diagrama

Los ángulos utilizados por este código (en sentido horario desde el eje x)

tercer diagrama

Otros consejos

Basta ver lo que en realidad seno y coseno media en un círculo: text alt

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. texto alternativo ??

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top