1
A
回答
3
你可以做什麼的顯示on this article by Juan Mendes:
HTML:
<canvas id="rounded-rect" width="600" height="600">
<!-- Insert fallback content here -->
</canvas>
的JavaScript:
CanvasRenderingContext2D.prototype.roundRect = function(x, y, width, height, radius, fill, stroke) {
if (typeof stroke == "undefined") {
stroke = true;
}
if (typeof radius === "undefined") {
radius = 5;
}
this.beginPath();
this.moveTo(x + radius, y);
this.lineTo(x + width - radius, y);
this.quadraticCurveTo(x + width, y, x + width, y + radius);
this.lineTo(x + width, y + height - radius);
this.quadraticCurveTo(x + width, y + height, x + width - radius, y + height);
this.lineTo(x + radius, y + height);
this.quadraticCurveTo(x, y + height, x, y + height - radius);
this.lineTo(x, y + radius);
this.quadraticCurveTo(x, y, x + radius, y);
this.closePath();
if (stroke) {
this.stroke(stroke);
}
if (fill) {
this.fill(fill);
}
};
// Now you can just call
var ctx = document.getElementById("rounded-rect").getContext("2d");
// Manipulate it again
ctx.strokeStyle = "#2d6";
ctx.fillStyle = "#abc";
ctx.roundRect(100, 200, 200, 100, 50, true);
正如你可以在此JsFiddle
+0
謝謝!這很好! – 2012-03-14 04:23:01
4
一個簡單的方法就是用看quadraticCurveTo
平滑角落
function roundRect(x0, y0, x1, y1, r, color)
{
var w = x1 - x0;
var h = y1 - y0;
if (r > w/2) r = w/2;
if (r > h/2) r = h/2;
ctx.beginPath();
ctx.moveTo(x1 - r, y0);
ctx.quadraticCurveTo(x1, y0, x1, y0 + r);
ctx.lineTo(x1, y1-r);
ctx.quadraticCurveTo(x1, y1, x1 - r, y1);
ctx.lineTo(x0 + r, y1);
ctx.quadraticCurveTo(x0, y1, x0, y1 - r);
ctx.lineTo(x0, y0 + r);
ctx.quadraticCurveTo(x0, y0, x0 + r, y0);
ctx.closePath();
ctx.fillStyle = color;
ctx.fill();
}
相關問題
- 1. 用Android Canvas繪製圓角矩形
- 2. 如何用OpenCV繪製圓角矩形(帶圓角的矩形)?
- 3. 如何製作表單圓角矩形或圓形或三角形
- 4. 的UIView contentstretch改變一圈橢圓形,而不是藥丸形狀
- 5. 如何在圓角矩形內或圓形內繪製圖像?
- 6. 如何在矢量矩形w/dojo上製作圓角?
- 7. 如何製作左上角圓角和左下角圓角的形狀?
- 8. 點是內圓角矩形?
- 9. 形狀識別(識別手繪基本形狀 - 矩形,橢圓形,三角形等)?
- 10. 如何將自定義形狀變形/製作成圓形? CANVAS JS
- 11. 繪製帶有彩色圓角邊框的矩形形狀
- 12. 在矩形上繪製圓形
- 13. 在圓形公式上繪製矩形
- 14. 如何創建圓形UIview而不是矩形形狀
- 15. 將圓角矩形變換爲圓形
- 16. 如何檢測JPEG圖像上的基本2D幾何形狀(例如正方形,三角形,圓形)?
- 17. Silverlight中的圓角矩形
- 18. 圓角矩形在pygtk的
- 19. UIBezierPath圓角矩形 - 角
- 20. 如何用CSS製作基本形狀?
- 21. 如何製作Gosu Ruby基本形狀
- 22. 如何在活動選項卡上製作三角形形狀
- 23. 方形可繪製,使其成爲一個圓角矩形形狀
- 24. 如何製作div角落橢圓形?
- 25. 如何在android錄像機上手動繪製圓形,矩形
- 26. 如何在Silverlight中製作頂部(或底部)圓角矩形角?
- 27. 如何在龜,蟒蛇中製作矩形形狀?
- 28. 如何繪製圓角矩形而不填充(在MFC中)?
- 29. 如何在Rebol中繪製和填充圓角矩形
- 30. 如何在Android UI中繪製圓角矩形?
的重複[如何繪製一個圓角矩形的HTML畫布?](http://stackoverflow.com/questions/1255512/how-to-draw-a-rounded-rectangle-上的html-帆布);請參閱[本答案](http://stackoverflow.com/a/7838871/405017)。下次,請首先在網站或網上搜索答案。 – Phrogz 2012-03-13 22:38:59