Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML] kąty w canvas- html5
Forum PHP.pl > Forum > Przedszkole
Pasiral
Witam,
Może to i głupie pytanie, ale chciałbym dobrze to zrozumieć.. Przerabiam właśnie książkę o HTML5 i jestem na tworzeniu kątów w canvas. W przykładzie został narysowany pół okrąg.

  1. <!DOCTYPE HTML>
  2. <script type="text/javascript" >
  3. MasterCanvas = new Object();
  4. MasterCanvas.showCanvas=function()
  5. {
  6. canvasNow = document.getElementById("beHappy");
  7. contextNow = canvasNow.getContext('2d');
  8.  
  9. contextNow.beginPath();
  10. contextNow.moveTo(0,0);
  11. contextNow.lineTo(300,0);
  12. contextNow.lineTo(300,200);
  13. contextNow.lineTo(0,200);
  14. contextNow.closePath();
  15. contextNow.stroke();
  16.  
  17. RADCON = 0.01745329251994;
  18. twelve = 0;
  19. three = RADCON * 90;
  20. six = RADCON * 180;
  21. nine = RADCON * 270;
  22.  
  23. contextNow.beginPath();
  24. contextNow.arc(125,100,50,six,twelve,true);
  25. contextNow.stroke();
  26. }
  27. <style type="text/css">
  28. body {
  29. font-family: Verdana, Geneva, sans-serif;
  30. color: #cc0000;
  31. }
  32. <meta charset="UTF-8">
  33. <title>Uśmiech</title>
  34. </head>
  35. <body onLoad="MasterCanvas.showCanvas()">
  36. <article>
  37. <figure>
  38. <canvas id="beHappy" width="300" height="200">
  39. Nie widzisz uśmiechu ponieważ nie masz przeglądarki HTML5. Nie ma uśmiechu dla Ciebie!
  40. </canvas>
  41. <figcaption>
  42. <p>Prostokąt wyznacza granice canvas</p>
  43. </figcaption>
  44. </figure>
  45. </article>
  46. </body>
  47. </html>


Wszystko działa, natomiast czegoś tutaj nie rozumiem.
Autor książki pisze, że ze stopniami tutaj jest jak na kompasie, czy też na zegarze (stąd nazwy zmiennych). Kąt 0 / 360 stopni jest równy wskazówce zegara pokazującej godzinę 12, a kąt 180 stopni jest równy wskazówce zegara na godzinie 6. Natomiast logicznie myśląc, gdybyśmy zaznaczyli łuk od godziny 12 do godziny 6, to nie wyglądał by on jak dolna połowa okręgu tylko jak boczna połowa okręgu, tak mi się wydaje.
Nie mam pojęcia jak do tego podejść aby zrozumieć w jakiś łatwy sposób, jakie wprowadzać dane w punkcie początkowym i punkcie końcowym łuku, aby ten narysowany został tak jak to sobie zaplanowałem.

Mam nadzieje że dość jasno opisałem swój problem. Chodzi o to, że autor książki mówi abym na te kąty spojrzał jak na kompas czy na zegar, jednak patrząc w ten sposób zupełnie nie potrafię narysować odpowiedniego łuku..
CuteOne
Obrazkowo ;P

---------0/360

270 ------------ 90

---------180


nie patrz na kreski (są zamiast spacji) smile.gif

ps. pamiętaj że kąty podaje się w radianach smile.gif
Pasiral
No tak, ten obrazek rozumiem i właśnie myślałem że tak to ma być.
Jednak jeżeli tak by było to gdy zaznaczę łuk rozpoczynający się od kąta 180 a kończący na kącie 0/360 z wartością 'true' przy kierunku odwrotnym do kierunku ruchu wskazówek, to powinien pojawić mi się zarys prawego, bocznego półkola (powiedzmy że odbicie lustrzane litery 'C' wink.gif ) tak? bo zaczynam rysować od dołu (180) a kończę rysować na górze (360).

Natomiast w przykładzie który umieściłem w pierwszym poście, łuk zaczynający się od 180 stopni a kończący na 360 stopniach, przedstawia mi zarys dolnego półkola (powiedzmy, że literę 'U') i w tym momencie moja teoria upadła. Bo jeżeli rysuje łuk od dołu (180) do góry (360) czy też od góry (360) do dołu (180) to w żaden sposób w mojej wyobraźni nie potrafi powstać zarys szerokiej litery 'U' - tutaj jak widać koniec i początek łuku są na jednej wysokości, więc to chyba powinno być 270 i 90 stopni?

Tak tak, wiem że wielkości wyrażamy w radianach, ale żeby łatwiej opisać problem, opisuje go na przykłady stopni, które oczywiście później zamieniam podkładając pod odpowiednią stałą smile.gif

Pozdrawiam i dziękuję za odpowiedź.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.