精华内容
下载资源
问答
  • 如何制作圆角矩形
    2021-06-13 04:33:41

    用canvas画只有一个角是圆角的矩形,能画出来么?

    CSS布局HTML小编今天和大家分享各位大侠指点,

    找到方法了float[] radii={12f,12f,0f,0f,0f,0f,0f,0f};path.addRoundRect(new RectF(0, 0, 50, 50), radii, Path.Direction.CW);canvas.drawPath(path,paint); 查看原帖>>

    279f33f73449af964faa68a1ddf90f71.png

    canvas怎么画一个渐变的圆角边框,填充的也行

    PS制作渐变圆角矩形: 方法一:

    用路径工具里的圆角矩形工具拉出矩形;

    按住ctrl(控制键)的同时按回车,把路径图形转换成蚂蚁线选区;

    不要取消选区用渐变工具在选区内拉出你要的渐变色彩。 方法二:

    我知道两种方法,一种是利用路径查找器将一个矩形和一个圆角矩形相交的地方剪出来。 还有一种方法是先画一个圆角矩形,利用转换锚点工具将三个角转换成直角的在利用直接选择工具拽垂直

    工具箱(多种工具共用一个快捷键的可同时按【Shift】加此快捷键选取) 矩形、椭圆选框工具 【M】 移动工具 【V】 套索、多边形套索、磁性套索 【L】

    int x = 10; int y = 10; int width = 300; int height = 50; float[] outerR = new float[] { 12, 12, 0, 0, 0, 0, 30, 30 }; RoundRectShape rectShape=new RoundRectShape(outerR, null, null); ShapeDrawable mDrawables= new ShapeDrawable

    html5-canvas中使用arcTo方法绘制圆角矩形的时候遇问题在注释中 代码如下

    更多相关内容
  • 圆角矩形制作想必大家都会吧,但真正的实现原理想必并没有几个人知道,在本文有个不错的示例或许能帮助大家更好的理解其中的原理,感兴趣的朋友可以参考下
  • SVG制作圆角矩形代码

    2014-01-24 09:14:24
    代码只包含一个circlerect.svg和circlerect.html文件,.svg收藏起来,以后用到的时候,可直接使用,不用再费脑筋去想,去查阅资料了。
  • canvas制作圆角矩形(包括填充矩形的功能)您的浏览器不支持 HTML5 canvas 标签。window.onload = function() {var myCanvas = document.getElementById("myCanvas"); //获取canvas对象if (myCanvas.getContext("2d"))...

    canvas制作圆角矩形(包括填充矩形的功能)

    您的浏览器不支持 HTML5 canvas 标签。

    window.onload = function() {

    var myCanvas = document.getElementById("myCanvas"); //获取canvas对象

    if (myCanvas.getContext("2d")) { //判断浏览器是否支持canvas标签

    //设置canvas的宽度和高度

    myCanvas.width = 400;

    myCanvas.height = 200;

    var context = myCanvas.getContext("2d"); //获取画布context的上下文环境

    //绘制一个圆角矩形

    strokeRoundRect(context, 10, 10, 100, 50, 10);

    //绘制并填充一个圆角矩形

    fillRoundRect(context, 200, 10, 100, 50, 10, 'rgba(0,0,0,0.7)');

    } else {

    alert("您的浏览器不支持canvas,请换个浏览器试试");

    }

    };

    /**该方法用来绘制一个有填充色的圆角矩形

    *@param cxt:canvas的上下文环境

    *@param x:左上角x轴坐标

    *@param y:左上角y轴坐标

    *@param width:矩形的宽度

    *@param height:矩形的高度

    *@param radius:圆的半径

    *@param fillColor:填充颜色

    **/

    function fillRoundRect(cxt, x, y, width, height, radius, /*optional*/ fillColor) {

    //圆的直径必然要小于矩形的宽高

    if (2 * radius > width || 2 * radius > height) { return false; }

    cxt.save();

    cxt.translate(x, y);

    //绘制圆角矩形的各个边

    drawRoundRectPath(cxt, width, height, radius);

    cxt.fillStyle = fillColor || "#000"; //若是给定了值就用给定的值否则给予默认值

    cxt.fill();

    cxt.restore();

    }

    /**该方法用来绘制圆角矩形

    *@param cxt:canvas的上下文环境

    *@param x:左上角x轴坐标

    *@param y:左上角y轴坐标

    *@param width:矩形的宽度

    *@param height:矩形的高度

    *@param radius:圆的半径

    *@param lineWidth:线条粗细

    *@param strokeColor:线条颜色

    **/

    function strokeRoundRect(cxt, x, y, width, height, radius, /*optional*/ lineWidth, /*optional*/ strokeColor) {

    //圆的直径必然要小于矩形的宽高

    if (2 * radius > width || 2 * radius > height) { return false; }

    cxt.save();

    cxt.translate(x, y);

    //绘制圆角矩形的各个边

    drawRoundRectPath(cxt, width, height, radius);

    cxt.lineWidth = lineWidth || 2; //若是给定了值就用给定的值否则给予默认值2

    cxt.strokeStyle = strokeColor || "#000";

    cxt.stroke();

    cxt.restore();

    }

    function drawRoundRectPath(cxt, width, height, radius) {

    cxt.beginPath(0);

    //从右下角顺时针绘制,弧度从0到1/2PI

    cxt.arc(width - radius, height - radius, radius, 0, Math.PI / 2);

    //矩形下边线

    cxt.lineTo(radius, height);

    //左下角圆弧,弧度从1/2PI到PI

    cxt.arc(radius, height - radius, radius, Math.PI / 2, Math.PI);

    //矩形左边线

    cxt.lineTo(0, radius);

    //左上角圆弧,弧度从PI到3/2PI

    cxt.arc(radius, radius, radius, Math.PI, Math.PI * 3 / 2);

    //上边线

    cxt.lineTo(width - radius, 0);

    //右上角圆弧

    cxt.arc(width - radius, radius, radius, Math.PI * 3 / 2, Math.PI * 2);

    //右边线

    cxt.lineTo(width, height - radius);

    cxt.closePath();

    }

    展开全文
  • 主要介绍了Android开发使用自定义View将圆角矩形绘制在Canvas上的方法,结合实例形式分析了Android自定义view绘制圆角矩形的相关方法与使用技巧,需要的朋友可以参考下
  • js绘制圆角矩形

    2021-06-26 03:19:26
    绘制出来啦,代码如下矩形.juxing{/* 加上css会很奇怪-。-*//* transition:all 0.1s ease-in; */}点击const len = 50;let array = [];let time = null;function start() {clearInterval(time);time = setInterval(()...

    2dfd3c0a532526a353fc8bd4204b11af.png

    绘制出来啦,代码如下

    矩形

    .juxing{

    /* 加上css会很奇怪-。-*/

    /* transition:all 0.1s ease-in; */

    }

    点击

    const len = 50;

    let array = [];

    let time = null;

    function start() {

    clearInterval(time);

    time = setInterval(() => {

    huanwei();

    }, 100);

    }

    function huanwei() {

    array.unshift(array.pop());

    var els = document.querySelectorAll('.juxing');

    for (let i = 0; i < len; i++) {

    let el = document.getElementById('ip' + (i + 1));

    if (array[i] && array[i].point) {

    let point = array[i].point;

    el.style.left = point.x + 'px';

    el.style.top = point.y + 'px';

    }

    }

    }

    function createNode(name, p) {

    // 填充div

    let x = p.x;

    let y = p.y;

    var createDiv = document.createElement("div");

    // 动态

    createDiv.id = name;

    createDiv.style.left = p.x + 'px';

    createDiv.style.top = p.y + 'px';

    createDiv.innerHTML = name;

    // 固定

    if (name !== 'yuan') {

    // 存储非圆心的所有坐标点

    createDiv.className = "juxing"

    let obj = {

    id: name,

    point: { x: p.x, y: p.y }

    }

    array.push(obj);

    }

    createDiv.style.position = "absolute";

    createDiv.style.width = "30px";

    createDiv.style.height = "30px";

    createDiv.style.borderRadius = "30px";

    // border-radius: 30px;

    createDiv.style.background = "pink";

    createDiv.style.border = "1pxsolidred";

    document.body.appendChild(createDiv);

    }

    initNode({

    len: len,

    rectW: 400,

    rectH: 300,

    p: {

    x: 400,

    y: 200

    }

    });

    function initNode(params) {

    //初始化圆角矩形

    // 数量

    let len = params.len || 100;

    // 设置圆角矩形内矩形宽高 ,

    let rectW = params.rectW || 700;

    let rectH = params.rectH || 900;

    // 中心

    let cx = params.p.x || 0;

    let cy = params.p.y || 0;

    /*

    * 思路:圆角矩形可以看作一个矩形和左右两个半圆组成,半径为矩形的一半;

    * 圆周长+矩形两边的长度 / 总数量 计算出各边应该存放的小车数量,以此数量为基准判断该绘制哪一块;

    *

    * o = (180 / arcLenSplit) * Math.PI / 180

    * l=nπr/180 弧长公式

    * l = n(圆心角)× π(圆周率)× r(半径)/180=α(圆心角弧度数)× r(半径)

    * 这里的象限为4321,为(1,1),(1,-1),(-1,-1),(-1,1)

    *

    */

    // 圆半径

    let radius = rectH / 2;

    // 两边弧长相等为

    let arcLength = Math.PI * radius;

    // 圆弧*2 + 矩形顶边底边长度除以总数量

    let split = ((arcLength * 2) + (rectW * 2)) / len;

    // 矩形边长可以存放数量,均分

    let sideLenCount = Math.round(rectW / split);

    //弧长可以存放小车数量

    let arcLenSplit = Math.round(arcLength / split);

    //

    let lineSplit = rectW / sideLenCount

    //每一个BOX对应的角度;

    // var avd = 180 / arcLenSplit;

    //每一个BOX对应的弧度;

    // let o = avd * Math.PI / 180;

    // 再次尝试,改掉以角度划分为以数量来划分,

    var count = 0;

    var count2 = 0;

    // 画圆心,主要绘制的时候观察使用,后期删除

    createNode('yuan', { x: cx, y: cy });

    // 左下角

    let p1 = { x: -rectW / 2, y: rectH / 2, i: 0 };

    let p2 = { x: rectW / 2, y: -rectH / 2, i: 0 }

    //思路:计算矩形周长,处以数量值;先从左下角开始,每次叠加x,如果超过矩形下方长度,则切换至圆形弧度绘制,还是只能以是否在矩形上来判断该绘制矩形横轴或者圆形

    for (var j = 1; j <= len; j++) {

    if (j <= sideLenCount) {

    //绘制矩形底边 外面为计算总共拆分,里面重新计算分到的 边长/数量

    let x = p1.x + getSplit(lineSplit, p1.i)

    let y = p1.y;

    p1.i++;

    createNode('ip' + j, { x: x + cx, y: y + cy });

    } else if (j > sideLenCount && j <= (sideLenCount + arcLenSplit)) {

    // 绘制右侧圆弧

    let ang = 180 / arcLenSplit;

    let hd = getSplit(ang, count) * Math.PI / 180;

    count++;

    let yuanx = radius * Math.sin(hd) + cx + (rectW / 2);

    let yuany = radius * Math.cos(hd) + cy;

    createNode('ip' + j, { x: yuanx, y: yuany });

    } else if (j > (sideLenCount + arcLenSplit) && j <= (sideLenCount + sideLenCount + arcLenSplit)) {

    // 矩形顶部

    let x = p2.x - getSplit(lineSplit, p2.i)

    y = p2.y;

    p2.i++;

    createNode('ip' + j, { x: x + cx, y: y + cy });

    } else {

    //剩余

    let remaining = len - (sideLenCount * 2) - arcLenSplit;

    let ang = getSplit(180 / remaining, count2) * Math.PI / 180;

    // 貌似是加上180度弧度的意思?

    let hd = ang + (Math.PI / 180 * 180);

    count2++;

    let yuanx = radius * Math.sin(hd) + cx - (rectW / 2);

    let yuany = radius * Math.cos(hd) + cy;

    createNode('ip' + j, { x: yuanx, y: yuany });

    }

    }

    function getSplit(split, count) {

    // 2,6,10,14方式均分排列

    return (split / 2) + (count * split)

    }

    }

    展开全文
  • android显示圆角矩形的图片其原理就是首先获取到图片的Bitmap,然后进行裁剪对应的圆角矩形的bitmap,然后在onDraw()进行绘制圆角矩形图片输出
  • 主要介绍了android实现圆角矩形背景的方法,以实例形式分析了Android编程实现圆角矩形背景的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
  • 主要介绍了详解微信小程序canvas圆角矩形的绘制的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 主要介绍了使用HTML5 Canvas绘制圆角矩形及相关的一些应用举例,作者举了2048小游戏和微信对话框两个实用的例子来作为操作Canvas API的实用练习推荐,需要的朋友可以参考下
  • 使用Unity Shader实现圆角矩形 原理分析: 提示:这里描述项目中遇到的问题: 例如:数据传输过程中数据不时出现丢失的情况,偶尔会丢失一部分数据 APP 中接收数据代码: 先有一个矩形 假设矩形里边还有一个...

    目的:

    使用Unity Shader实现圆角矩形

    原理分析:

    1. 先有一个矩形
      在这里插入图片描述

    2. 假设矩形里边还有一个矩形(与原有矩形等比缩放)
      在这里插入图片描述

    3. 再假设有一个圆形
      在这里插入图片描述

    4. 重新规划坐标,Unity中UV原点为左下角(0,0),将坐标偏移到(0.5, 0.5)在这里插入图片描述

    5. 假设圆形的r,得出内矩形的边长在这里插入图片描述

    6. 假设有点(x, y),为了将点在四个象限的不同情况当做一个象限处理,我们将点取绝对值,统一当做第一象限处理在这里插入图片描述

    7. 将点的坐标映射到矩形的边在这里插入图片描述

    8. 声明resultAlpha,剩下的就是将映射后的坐标的(x,y),计算xx + yy > r*r(判断一个点是否在圆里的公式),true(resultAlpha = 0), false(resultAlpha = 1),并将输出颜色的a(rgba的a)设置为resultAlpha

    9. 设置混合SrcAlpha OneMinusSrcAlpha

    代码:

    Properties
        {
            _Color ("Color", Color) = (1,1,1,1)
            _Radius ("Radius", Range(0, 0.5)) = 0.1
            _MainTex ("MainTex", 2D) = "white"{}
        }
        SubShader
        {
            Tags{ "RenderType" = "Opaque" "Queue" = "Geometry" }
            Blend SrcAlpha OneMinusSrcAlpha
            Pass{
                CGPROGRAM
                #pragma vertex vert
                #pragma fragment frag
                
                #include "UnityCG.cginc"
    
                struct appdata
                {
                    float4 vertex : POSITION;
                    float2 uv : TEXCOORD0;
                };
                struct v2f
                {
                    float4 pos : SV_POSITION;
                    float2 uv : TEXCOORD0;
                };
    
                float _Radius;
                sampler2D _MainTex;
                
                v2f vert (appdata v)
                {
                    v2f o;
                    o.pos = UnityObjectToClipPos(v.vertex);
                    o.uv = v.uv; 
                    return o;
                }
                fixed4 frag (v2f i) : SV_Target
                {
                    fixed3 col = tex2D(_MainTex, i.uv).rgb;
                    
                    float uvX = abs(i.uv.x - 0.5);
                    float uvY = abs(i.uv.y - 0.5);
                    
                    uvX = max(0, uvX - (0.5 - _Radius));
                    uvY = max(0, uvY - (0.5 - _Radius));
                    
                    float resultAlpha = uvX * uvX + uvY * uvY > _Radius * _Radius ? 0 : 1;
                    
                    return fixed4(col,resultAlpha);
                }
                ENDCG
            }
        }
    

    效果:

    在这里插入图片描述

    展开全文
  • CSS制作圆角矩形实例

    2008-05-02 20:30:31
    现在网页上用到圆弧的地方一般都是图片,这里介绍一种用CSS作的圆角矩形,用编程的方法在网页上生成圆弧。一开始在网上发现圆弧不是图片的时候真的惊呆了,后来就仔细研究了别人做的东西,终于弄明白了,大家只要看...
  • 今天小编就为大家分享一篇关于易语言在画板中画一个指定样式圆角矩形的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
  • canvas绘制圆角矩形

    2021-03-18 18:22:50
    // (x,y):圆角矩形起始坐标; width: 矩形宽度; height: 矩形高度; r: 矩形圆角; bgcolor: 矩形填充颜色; lineColor: 矩形边框颜色; draw(ctx, x, y, width, height, r, bgcolor, lineColor) { ctx.beginPath(); ...
  • 闲来无事,突然又想起了圆角矩形的实现。不过这个话题大家已经谈了太长时间了。各种各样的实现方案在网上都可以看到。这里仅仅是记录一下个人认为比较好的一个。这个方案不使用任何图片,是纯html+css实现。 css代码...
  • CSS高级技巧:圆角矩形

    2021-01-21 13:40:15
    1. 固定宽度的纯色圆角矩形 在众多圆角技术中, 固定宽度的圆角矩形应该是最容易实现的, 只需要2个图片以及一段简单的html代码. html代码如下: <div class=wrapper> 标题</h1> 内容</p></div> 图片大致如下: top...
  • unity 切圆角矩形

    2016-03-01 16:36:52
    unity 切圆角矩形,通过shader编码实现图片圆角
  • 纯CSS制作圆角矩形框知识总结

    千次阅读 热门讨论 2015-08-23 21:33:30
    制作后台登录页的时候,需要从网页上面把那个圆角矩形框选取下来,然后通过Photoshop进行切割,在进行设置,最后得到需要的登录框的圆角矩形框。如下图。  但是登录最新的智囊团的那个登录页面的时候,上面...
  • android 使用canvas把矩形图片变成圆角矩形显示 参考网址:http://blog.csdn.net/rhljiayou/article/details/7212620
  • C#画圆角矩形的方法

    2020-09-03 17:56:20
    主要介绍了C#画圆角矩形的方法,涉及C#绘图的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
  • java在JFrame上画一个圆角矩形Demo,主要代码: @Override public void paint(Graphics g) { super.paint(g); g.setColor(Color.GREEN); g.drawRoundRect(10, 10, 300, 100, 15, 15); }
  • Html轻松实现圆角矩形

    2020-09-28 10:45:49
    主要为大家详细介绍了html轻松实现圆角矩形的方法,告诉大家如何通过div+css以及定位来实现圆角矩形?感兴趣的小伙伴们可以参考一下

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 39,727
精华内容 15,890
关键字:

如何制作圆角矩形