Tôi duy trì các trình kết xuất Flash và HTML5/Canvas song song cho dự án nguồn mở OpenHeatMap. Tôi bị cản bởi một sự mâu thuẫn trong việc vẽ các đa giác đầy với các tọa độ phân số giữa hai phiên bản. Nếu bạn hiển thị hai đa giác có chung một cạnh, Canvas sẽ hiển thị một kết nối hiển thị dọc theo cạnh đó, trong khi Flash sẽ liên kết chặt chẽ cả hai cạnh nhau, không có sự khác biệt nào có thể nhìn thấy nếu chúng có cùng màu. Tôi đã đặt cùng một trang tối thiểu đây để hiển thị các vấn đề:Làm cách nào để tránh các hiện vật ghép cạnh đa giác trong Canvas HTML5?
http://web.mailana.com/labs/stitchingbug/
[Gak, ngăn chặn spam dừng này không bị một hình ảnh, nhưng xem ở đây để một web.mailana.com/labs/stitchingbug ảnh chụp màn hình .png]
nguồn, cùng với một dự án flash làm điều tương tự, là ở đây:
github.com/petewarden/stitchingbug
vấn đề cơ bản là nó không thể làm bất cứ đa giác phức tạp r endering nếu bạn không thể khâu đa giác với nhau mà không có đường nối. Tôi không biết chính xác quy tắc điền Flash là gì, nhưng chúng tạo ra kết quả chính xác, cũng như các trình kết xuất 3D. Có ai có một sửa chữa phía khách hàng để làm việc xung quanh vấn đề này? Đó là trình duyệt chéo, mà làm cho nó có vẻ thận trọng, vì vậy bất kỳ tham chiếu đến các quy tắc được sử dụng cũng sẽ được đánh giá cao. Dưới đây là mã Canvas:
var ctx = canvas.getContext('2d');
ctx.fillStyle = 'rgb(0,0,0)';
ctx.beginPath()
ctx.moveTo(0, 0);
ctx.lineTo(50.5, 0);
ctx.lineTo(50.5, 100);
ctx.lineTo(0, 100);
ctx.closePath();
ctx.fill();
ctx.beginPath()
ctx.moveTo(50.5, 0);
ctx.lineTo(100, 0);
ctx.lineTo(100, 100);
ctx.lineTo(50.5, 100);
ctx.closePath();
ctx.fill();
Brainstorming: tính trung tâm của mỗi đa giác và khi vẽ đẩy các điểm bên ngoài từ trung tâm bởi một lượng nhỏ (có lẽ là 0,5). Buộc rút tiền quá mức của chống răng cưa. – Phrogz
Xem phần thứ hai của [câu trả lời này] (http://stackoverflow.com/questions/15631426/svg-fill-not-filling-boundary/15638764#comment22224474_15638764) để hiểu tại sao bạn không thể giải quyết vấn đề này mà không cần 'hack 'Giống như đột quỵ hoặc lấp đầy khi chống răng cưa có liên quan. – Phrogz