대학 프로젝트를 HTML로 표시하도록 선택 했으므로 사용자는 삼각형의 세면을 입력하고 모양이 화면에 렌더링됩니다. 페이지가 삼각형을 만드는로드되면사용자 입력을 사용하여 SVG 및 HTML 삼각형 그리기 및 애니메이션
<script type="application/javascript">
function init() {
var canvas = document.getElementById("canvas");
if (canvas.getContext) {
var ctx = canvas.getContext("2d");
var a = *user input*;
var b = *user input*;
var c = *user input*;
var ox = 450-(a/2); // 450px since the canvas size is 900px,
var oy = 450+(y3/2); // this aligns the figure to the center
var x3 = ((b*b)+(a*a)-(c*c))/(2*a);
var y3 = Math.ceil(Math.sqrt((b*b)-(x3*2)));
var img = new Image();
img.src = 'grad.png';
ctx.strokeStyle = '#fff';
ctx.lineWidth = 3;
ctx.shadowOffsetX = 0;
ctx.shadowOffsetY = 0;
ctx.shadowBlur = 10;
ctx.shadowColor = 'rgba(0, 0, 0, 0.5)';
var ptrn = ctx.createPattern(img,'repeat');
ctx.fillStyle = ptrn;
ctx.beginPath();
ctx.moveTo(ox,oy);
ctx.lineTo(a+ox,oy);
ctx.lineTo(ox+x3,oy-y3);
ctx.lineTo(ox,oy);
ctx.fill();
ctx.stroke();
ctx.closePath();
}
}
</script>
<body onLoad="init();">
<canvas id="canvas" width="900" height="900"></canvas><br>
</body>
나는 단순한 규모의 애니메이션을 구성하기 위해 노력하고있어 : 나는이 값을 얻을 x와 <canvas>
태그 안에있는 삼각형을 그리기 y 좌표를 만들 자바 스크립트를했습니다 및 기타 모양을 화면에서 "성장"합니다. CSS를 사용하면 전체 캔버스가 확장됩니다. 또한 값이 고정되어 있지 않고 캔버스를 사용하기 때문에이 애니메이션을 만드는 방법을 알지 못합니다. 프레임별로 애니메이션을 적용해야합니다. 이제 CSS와 SVG를 사용하면 각 요소에 간편한 스케일 효과를 사용할 수 있습니다. 문제는 사용자가 입력 한 값을 사용하여 SVG에서 삼각형을 생성해야한다는 것입니다. 어떻게해야합니까?
고마워요! 이것은 내가 찾고 있었던 바로 그 것이다! – Samuel