2011-09-17 2 views
1

J'ai un cercle que j'ai dessiné sur une toile. Je voudrais dessiner des objets semblables à des tabulations entourant ce cercle en utilisant 2 arcs qui sont connectés à chaque extrémité avec une ligne tracée à un certain angle. Malheureusement, puisque la méthode lineTo() accepte uniquement les coordonnées x &, je dois pouvoir traduire où je veux dessiner dans ces termes.HTML 5 Canvas arc() et lineTo() pour dessiner des tabulations autour d'un cercle

screenshot

je peux tirer le premier arc, allant du point 4 à 1, mais je ne sais pas comment obtenir les coordonnées x et y de 1, ni comment comprendre ce que x et y coordonnée de 2 devrait être. Une fois que je suis à 2, j'ai juste besoin d'augmenter le rayon pour dessiner l'arc de 2 à 3 (ou 3 à 2), mais alors je devrais savoir comment obtenir les coordonnées x, y de 4 pour que je puisse appelez lineTo() et passez x et y de 4. Je pense que c'est probablement une simple géométrie ou trigonométrie impliquant Math.sin() et Math.cos() mais j'ai du mal à le comprendre.

+1

http://mathworld.wolfram.com/PolarCoordinates.html vous obtiendrez les points – Joe

+0

Pouvez-vous poster le code que vous avez? – Joe

Répondre

1

J'ai utilisé quelque chose comme HTML5 Roulette Wheel.

Cela vous donnera les onglets que vous aimez, et vous pouvez jouer avec l'espacement entre les onglets.

Vous n'aurez pas besoin de lineTo, vous pouvez simplement utiliser le remplissage et le contour de chaque 'onglet' pour créer cet effet.

+0

Je ne comprends pas comment, si je n'utilise pas LineTo() comment je serai capable de remplir l'onglet si j'ai de l'espace entre les deux. Je pensais que je devais être capable d'appeler context.closePath() avant fill() pour pouvoir le remplir avec une couleur. – jamauss

+0

@jamauss - Avez-vous lu le lien? Vous venez de faire de petits arcs (comme 10 degrés ou plus) et les espacer de 3 degrés. Remplissez l'arc, effleurez la bordure. Facile comme pi. – tjameson

Questions connexes