Question

Je suis en train de comprendre les maths sur cette Raphael.js démo:

http://raphaeljs.com/pie.js

Payer la méthode du secteur:

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);
}

Ceci est la démonstration réelle: http://raphaeljs.com/pie.html

Mon calcul est un peu rouillé et je suis en train de comprendre la fonction du secteur - compte tenu des paramètres angleDepart et angleFin (chacune des valeurs de début et de fin entre 0 et 360 dessin d'un arc), pourquoi ce travail de fonction

Était-ce utile?

La solution

Tout dépend de la façon dont vous traitez startAngle et endAngle. Il ressemble à ceci est de les traiter comme à partir de l'horizontale à droite (à savoir un angle de 0 pointe vers le Est) et en allant clockingwise (donc un angle de 45 degrés pointe du Sud-Est.

En général, en mathématiques, nous considérons les angles à partir de l'horizontale à droite, mais de plus en plus vers la gauche ... mais si vous demandez à un non-mathématicien pour dessiner un angle, ils pourraient bien le traiter de verticalement vers le haut (c.-à-Nord) de plus en plus dans le sens horaire. Cela ressemble à cela prend un mélange :) Il n'y a pas vraiment de réponse « mauvaise » ou « droit » ici -. Il est une question de définition

Comme les images sont très populaires, voici les trois systèmes que je viens de décrire, chacun assumant la ligne est de longueur r:

les mathématiques normales: anti-horaire de l'axe x


(source: arachsys.com )

Demander l'homme de la rue à dessiner un angle (dans le sens horaire à partir de l'axe y)

Les angles utilisés par ce code (dans le sens horaire à partir de l'axe x)

Autres conseils

Il suffit de regarder ce que le péché et cos fait mean dans un cercle: text alt

Si vous avez un point sur un cercle qui forme un angle alpha, le cos alpha est le x-partie du point un alpha péché est la partie y.

Cette illustration explique, pourquoi l'angle est réduit à néant. text alt

Cela signifie que vous pouvez maintenant spécifier dans le sens horaire angles, que la plupart des personnes avec des horloges analogiques préfèrent.

Comme point arbitraire sur la circonférence avec le centre (cx, cy) et le rayon R a la coordonnée suivant (il suit directement à partir de cos et sin définitions géométriques - rapport entre la longueur de l'angle droit et l'hypoténuse correspondant):

x = cx + R*cos(a)
y = cy + R*sin(a) for  0 <= a < 2π

fixer des limites sur l'angle, vous pouvez définir un arc arbitraire.

Si vous prenez 0 ° en horizontal x augmentant et 90 ° en vertical avec y augmentant alors que:

cos(0) = 1
sin(0) = 0

cos(90) = 0
sin(90) = 1

vous pouvez faire varier la valeur de x en le multipliant par le cosinus et faire varier la valeur y en le multipliant par le sinus.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top