typescript를 사용하여 캔버스 HTML에서 육각형을 변환하는 방법

밀린 드 모디

나는 html로 캔버스에 육각형을 그렸고 번역 방법을 사용할 때 캔버스에서 육각형을 tranaslate하고 싶습니다 .6 각형을 번역하지 않지만 번역하면 사각형을 사용할 때 번역됩니다.

var canvas : HTMLCanvasElement = document.getElementById ( "myCanvas"); var context : CanvasRenderingContext2D = canvas.getContext ( "2d");

var x  =  300;
var y =  100;

context.beginPath();
context.moveTo(x, y);
x = x + 120;
y = y + 100;
context.lineTo(x, y);  

y = y + 120;
context.lineTo(x, y); 

x = x - 125;
y = y + 100;
context.lineTo(x, y); 

x = x - 125;
y = y - 100;
context.lineTo(x, y); 

y = y - 120;
context.lineTo(x, y); 

x = x + 130;
y = y - 100;
context.lineTo(x, y);
context.strokeStyle = "red";
context.lineWidth = 4;  
context.fillStyle = "blue";
context.fill(); 

context.translate(400,400);
context.fillStyle = "blue";
context.fill(); 
context.save(); 

context.fillRect(10, 10, 100, 50);
    context.translate(70, 70);
    context.fillRect(10, 10, 100, 50);

편집 1 : @helder에 따라 내가 변경했지만 번역이 작동하지 않습니다.

function hexagon(x:number, y:number, r:number, color:string) {
  context.beginPath();
  var angle = 0
  for (var j = 0; j < 6; j++) {
    var a = angle * Math.PI / 180
    var xd = r * Math.sin(a)
    var yd = r * Math.cos(a)
    context.lineTo(x + xd, y + yd);
    angle += 360 / 6
  }
  context.fillStyle = color;
  context.fill();
  context.translate(70,70);
  context.fill();
}

hexagon(100, 100, 50, "red")
클리어 세풀베다

번역을 사용할 필요가없는 방식으로 육각형을 그리는 함수를 만들려고합니다.

아래 참조

c = document.getElementById("canvas");
context = c.getContext("2d");

function hexagon(x, y, r, color) {
  context.beginPath();
  var angle = 0
  for (var j = 0; j < 6; j++) {
    var a = angle * Math.PI / 180
    var xd = r * Math.sin(a)
    var yd = r * Math.cos(a)
    context.lineTo(x + xd, y + yd);
    angle += 360 / 6
  }
  context.fillStyle = color;
  context.fill();
}

hexagon(50, 50, 30, "red")
hexagon(40, 40, 10, "blue")
hexagon(60, 60, 10, "lime")
<canvas id=canvas >

여기에 대한 분석이 있습니다 function hexagon(x, y, r, color)

  • 육각형의 중심 ( x,y), 반경 ( r) 및 색상
  • 6 개의 정점을 반복하고 선을 그립니다.
  • 계산은 약간의 삼각법에 불과합니다.

이를 통해 원하는 위치에 육각형을 그릴 수 있습니다.
팔각형이나 다른 다각형을 그리기 위해 쉽게 리팩터링 할 수있는 동일한 기능입니다.


여기 육각형의 애니메이션 버전이 있습니다.

c = document.getElementById("canvas");
context = c.getContext("2d");
delta = 0

function hexagon(x, y, r, color) {
  context.beginPath();
  var angle = 0
  for (var j = 0; j < 6; j++) {
    var a = angle * Math.PI / 180
    var xd = r * Math.sin(a)
    var yd = r * Math.cos(a)
    context.lineTo(x + xd, y + yd);
    angle += 360 / 6
  }
  context.fillStyle = color;
  context.fill();
}

function draw() {
  context.clearRect(0, 0, c.width, c.height)
  var xd = 10 * Math.sin(delta)
  var yd = 10 * Math.cos(delta)
  hexagon(50 - xd, 50 - yd, 30, "red")
  hexagon(40 + xd, 40 + yd, 10, "blue")
  delta += 0.2
}

setInterval(draw, 100);
<canvas id=canvas>

보시다시피 번역을 사용할 필요가 없습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Toplevel () Tkinter에서 캔버스를 사용하여 버튼을 만드는 방법

분류에서Dev

클래스를 사용하여 tkinter 캔버스에 다각형을 그리는 방법은 무엇입니까?

분류에서Dev

Android에서 캔버스를 사용하여 연동 원을 그리는 방법

분류에서Dev

HTML5 캔버스를 사용하여 도로 선을 만드는 방법

분류에서Dev

커서를 사용하여 캔버스를 지우는 방법

분류에서Dev

버튼을 사용하여 Fabric.js 캔버스에서 이미지를 제거하는 방법

분류에서Dev

캔버스를 사용하여 그림을 그리는 방법

분류에서Dev

슬라이더를 사용하여 HTML에서 캔버스 브러시 크기를 변경하는 방법

분류에서Dev

fabricjs에 포함 된 이미지 base64를 사용하여 캔버스를 SVG로 변환하는 방법

분류에서Dev

CSS를 사용하여 HTML5 캔버스에 색상을 지정하는 방법이 있습니까?

분류에서Dev

turtle.gotto를 사용하여 대칭 육각형을 인쇄하는 방법

분류에서Dev

Python 3.8을 사용하여 Tkinter에서 캔버스에 스크롤바를 만드는 방법

분류에서Dev

jquery javascript를 사용하여 캔버스에 텍스트 영역을 추가하는 방법

분류에서Dev

toDataURL을 사용하여 캔버스에서 이미지를 PHP로 보내는 방법

분류에서Dev

캔버스에서 특정 사각형을 강조하는 방법

분류에서Dev

HTML5 jquery를 사용하여 마우스 위치에서 캔버스에 요소를 놓는 방법

분류에서Dev

캔버스에 액자 사각형을 그리는 방법?

분류에서Dev

tkinter를 사용하여 캔버스에서 각 다각형의 각 지점을 추적

분류에서Dev

React에서 Styled Component 캔버스로 TypeScript 유형을 올바르게 사용하는 방법

분류에서Dev

Xamarin Android, 캔버스보기를 추가하여 사용자 서명을 캡처하는 방법

분류에서Dev

Kivy, 캔버스에서 데이터를 사용하는 방법

분류에서Dev

wpf에서 사각형의 높이를 수정 한 후 캔버스에서 사각형을 재정렬하는 방법은 무엇입니까?

분류에서Dev

HTML5 캔버스에서 클릭 한 그리드 정사각형 요소를 찾는 방법

분류에서Dev

SharedPreference를 사용하여 캔버스에 문자열을 그리는 방법은 무엇입니까?

분류에서Dev

drawImage ()를 사용하여 캔버스에 그림을 그리는 방법은 무엇입니까?

분류에서Dev

반 육각형 중간에 이미지가있는 테두리가있는 사각형 위에 테두리가있는 CSS를 사용하여 반 육각형 모양을 만드는 방법

분류에서Dev

캔버스 HTML에서 사각형을 원으로 변환

분류에서Dev

캔버스에 그려진 사각형 클릭을 인식하는 방법

분류에서Dev

React Hooks를 사용하여 ReasonML에서 HTML 캔버스 사용

Related 관련 기사

  1. 1

    Toplevel () Tkinter에서 캔버스를 사용하여 버튼을 만드는 방법

  2. 2

    클래스를 사용하여 tkinter 캔버스에 다각형을 그리는 방법은 무엇입니까?

  3. 3

    Android에서 캔버스를 사용하여 연동 원을 그리는 방법

  4. 4

    HTML5 캔버스를 사용하여 도로 선을 만드는 방법

  5. 5

    커서를 사용하여 캔버스를 지우는 방법

  6. 6

    버튼을 사용하여 Fabric.js 캔버스에서 이미지를 제거하는 방법

  7. 7

    캔버스를 사용하여 그림을 그리는 방법

  8. 8

    슬라이더를 사용하여 HTML에서 캔버스 브러시 크기를 변경하는 방법

  9. 9

    fabricjs에 포함 된 이미지 base64를 사용하여 캔버스를 SVG로 변환하는 방법

  10. 10

    CSS를 사용하여 HTML5 캔버스에 색상을 지정하는 방법이 있습니까?

  11. 11

    turtle.gotto를 사용하여 대칭 육각형을 인쇄하는 방법

  12. 12

    Python 3.8을 사용하여 Tkinter에서 캔버스에 스크롤바를 만드는 방법

  13. 13

    jquery javascript를 사용하여 캔버스에 텍스트 영역을 추가하는 방법

  14. 14

    toDataURL을 사용하여 캔버스에서 이미지를 PHP로 보내는 방법

  15. 15

    캔버스에서 특정 사각형을 강조하는 방법

  16. 16

    HTML5 jquery를 사용하여 마우스 위치에서 캔버스에 요소를 놓는 방법

  17. 17

    캔버스에 액자 사각형을 그리는 방법?

  18. 18

    tkinter를 사용하여 캔버스에서 각 다각형의 각 지점을 추적

  19. 19

    React에서 Styled Component 캔버스로 TypeScript 유형을 올바르게 사용하는 방법

  20. 20

    Xamarin Android, 캔버스보기를 추가하여 사용자 서명을 캡처하는 방법

  21. 21

    Kivy, 캔버스에서 데이터를 사용하는 방법

  22. 22

    wpf에서 사각형의 높이를 수정 한 후 캔버스에서 사각형을 재정렬하는 방법은 무엇입니까?

  23. 23

    HTML5 캔버스에서 클릭 한 그리드 정사각형 요소를 찾는 방법

  24. 24

    SharedPreference를 사용하여 캔버스에 문자열을 그리는 방법은 무엇입니까?

  25. 25

    drawImage ()를 사용하여 캔버스에 그림을 그리는 방법은 무엇입니까?

  26. 26

    반 육각형 중간에 이미지가있는 테두리가있는 사각형 위에 테두리가있는 CSS를 사용하여 반 육각형 모양을 만드는 방법

  27. 27

    캔버스 HTML에서 사각형을 원으로 변환

  28. 28

    캔버스에 그려진 사각형 클릭을 인식하는 방법

  29. 29

    React Hooks를 사용하여 ReasonML에서 HTML 캔버스 사용

뜨겁다태그

보관