시계의 종류 인 원을 그리려고 할 때 점 p1에서 시작하여 캔버스 2d 컨텍스트를 사용하여 검은 색 원호를 그립니다. 점 p1 (원 둘러보기) 나는 색을 흰색으로 변경하고 계속 그립니다. 검은 호가 지워지는 것과 같은 효과를 주어야합니다.하지만 예상대로 작동하지 않습니다. 왜냐하면 컨텍스트의 색을 변경하면 모든 것이 바뀌기 때문입니다 ...HTML 5 캔버스에서 스트로크 색상 변경하기
첫 번째 원을 색상으로 유지하고 전체 색상을 변경하지 않고 다른 색상으로 다른 원을 그릴 수있는 방법은 무엇입니까?
여기 내 시도
<!DOCTYPE html />
<html>
<head>
<title></title>
<script type="text/javascript">
var i = 0.01;
var Color = "Black";
var x = 75; // x coordinate
var y = 75; // y coordinate
var radius = 20; // Arc radius
var startAngle = 0; // Starting point on circle
var anticlockwise = false; // clockwise or anticlockwise
function draw() {
var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');
ctx.beginPath();
var endAngle = i; // End point on circleMath.PI + (Math.PI * 5)/
if (Math.floor(endAngle) >= 6) {
i = 0.01;
if (Color == "Black") {
Color = "White";
} else {
Color = "Black";
}
}
ctx.strokeStyle = Color;
ctx.arc(x, y, radius, startAngle, endAngle, anticlockwise);
ctx.stroke();
i = i + 0.05;
//document.getElementById('display').innerHTML = Math.floor(endAngle) + " " + Color;
}
</script>
</head>
<body onload="window.setInterval(function(){draw()},100);">
<canvas id="canvas" width="150" height="150"></canvas>
<span id="display"></span>
</body>
</html>
@ Shaded 님이 제안한 startAngle 업데이트 제안을 사용하여 [fiddle] (http://jsfiddle.net/r8afe/)을 만들었습니다. 문제를 해결했지만 몇 가지 다른 점을 제시합니다. 즉, 반 시계 방향이 작동하지 않습니다 (endAngle 및 startAngle을 바꿔야 함). 더 밝은 색상은 어두운 색상을 덮어 쓰지 않지만, 그것. 또한 도면의 틈을 피하기 위해'Math.Floor = 6'에서 'ifAndAngle = 2 * Math.PI'의 경우보다 정확한 조건으로 변경했습니다. –
두 분 모두 감사합니다. 여기 업데이 트가 있지만 사실 스코트, 색상이 혼합되어 있습니다 :) http://jsfiddle.net/Wzt38/ – joe
Fyi, 블렌딩 문제가 아니라 안티 앨리어싱 문제입니다. 그래도 이상하게도 완벽하게 덮어 쓰지는 않습니다. –