La matematica dietro a questa domanda è stata posta numerose volte, quindi non è esattamente quello che sto cercando. Piuttosto, sto provando a programmare l'equazione per determinare questi punti in un ciclo in JavaScript, in modo da poter visualizzare i punti in modo uniforme attorno al cerchio.Calcolo di punti equidistanti sul perimetro di un cerchio
Quindi, con le equazioni per le posizioni X e Y dei punti:
pointX = r * cos(theta) + centerX
pointY = r * sin(theta) + centerY
dovrei essere in grado di calcolare con questo:
var centerX = 300;
var centerY = 175;
var radius = 100;
var numberOfPoints = 8;
var theta = 360/numberOfPoints;
for (var i = 1; i <= numberOfPoints; i++) {
pointX = (radius * Math.cos(theta * i) + centerX);
pointY = (radius * Math.sin(theta * i) + centerY);
// Draw point (pointX , pointY)
}
E mi dovrebbe dare la x, y le coordinate lungo il perimetro per 8 punti, distanti 45 ° l'una dall'altra. Ma questo non funziona, e non capisco perché.
Questo è l'output che ottengo (utilizzando l'elemento Canvas HTML5). I punti devono risiedere sul cerchio rosso più interno, come quello ha un
errato:
Quando "dovrebbe" così (anche se questo è di solo 1 punto, posizionati manualmente):
corretto:
Qualcuno potrebbe darmi una mano? Sono passati anni da quando ho preso il trigone, ma anche guardando altri esempi (da varie lingue), non vedo perché questo non funzioni.
ovvio? radianti contro gradi (solo un'ipotesi) – Spiked3
Grazie per l'assistenza al montaggio, signor Llama! – SalarianEngineer
Ho modificato per rimuovere la soluzione dalla domanda, poiché l'hai pubblicata come risposta. Grazie per aver condiviso la tua soluzione come risposta qui sotto! – Aurora0001