Canvas i pokraczna spirala

Canvas i pokraczna spirala
adams0
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 333
0

Cześć.
Za pomocą canvas postanowiłem narysować ładną spriale.

Kopiuj
const a = 3;
const b = 3;
c.beginPath(100, 100);
for (let i = 0; i < Math.PI * 7; i += 0.01) {
  let x = a * (2.7182 ^ (b * i)) * Math.cos(i);
  let y = a * (2.7182 ^ (b * i)) * Math.sin(i);
  c.lineTo(300 + x, 300 + y);
}
c.strokeStyle = "red";
c.stroke();

Niestety nie jest ona gładka jak zakładałem a kanciasta. patrz obrazek
Dla czego tak jest i jak to naprawić?

SP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 127
2

Nawet fajnie wygląda ta kanciasta :)
Nie pomyliłeś operatora XOR z podnoszeniem do kwadratu (**)?

Kopiuj
a * (2.7182 ** (b * i))
adams0
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 333
0

Działa! W życiu nie słyszałem o takim operatorze, a logikę miałem :D .
Znacznie ładniej wygląda ta spirala po wywaleniu nawiasu:

Kopiuj
  let x = a * 2.71 ** b * i * Math.cos(i);
  let y = a * 2.71 ** b * i * Math.sin(i);
adams0
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 333
0

Skorą są chętni to wrzucam efekt po poprawkach wraz ze screenem :

Kopiuj
const a = 1.3;
const b = 1.3;
c.beginPath(100, 100);
for (let i = 0; i < Math.PI * 11; i += 0.01) {
  let x = a * 2.71 ** b * i * Math.cos(i);
  let y = a * 2.71 ** b * i * Math.sin(i);
  c.lineTo(300 + x, 300 + y);
}
c.strokeStyle = "red";
c.stroke();

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.