花潮论坛

搜索
热搜: 活动 交友 discuz
查看: 106|回复: 61

svgdr新指令:circlePoints

[复制链接]
  • TA的每日心情
    慵懒
    2025-11-30 07:45
  • 签到天数: 1655 天

    [LV.Master]伴坛终老

    3024

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

    发表于 2025-9-15 19:55 | 显示全部楼层 |阅读模式

    请马上登录,朋友们都在花潮里等着你哦:)

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x

    我经常使用svgdr设计帖子小播图案,使用过程中越来越觉得计算圆周上的顶点坐标应该封装成一个方法,因此抽空给svgdr增设了一个 circlePoints 指令。该指令的语法和参数解释如下:

    dr.circlePoints(points, R, r); // 参数解释: // 1. points 顶点数,比如绘制规则六边形,points 参数值就设置为 6 // 2. R 外切圆范围半径,其作用是规范了顶点所在外切圆的圆心 // 3. r 顶点外切圆半径,其值应小于等于 R

    指令将返回一个二维数组,数组结构为:[ ["值1","值2"], ["值3","值4"], ["值5","值6"], ..., ["值N","值N+1"] ]。来看看下面绘制规则六边形的例子:通过 circlePoints 指令获得顶点坐标值数组,并将结果组装成多边形的点数据——

    <svg id="msvg" width="400" height="400" viewBox="0 0 400 400"></svg> <script type="module"> import Dr from 'https://638183.freep.cn/638183/web/mod/svgdr.js?v=1'; const dr = Dr.dr(msvg); // 获取六边形顶点数组 const ar = dr.circlePoints(6, 200, 190); // 将数组里的数据串接起来 const points = ar.join(','); // 绘制实心六边形 dr.polygon(points, 'olive'); </script>

    再看一个多边形组合图案的绘制例子:

    <svg id="msvg" width="400" height="400" viewBox="0 0 400 400"></svg> <script type="module"> import Dr from 'https://638183.freep.cn/638183/web/mod/svgdr.js?v=1'; const dr = Dr.dr(msvg); const p1 = dr.circlePoints(8, 200, 190).join(','); const p2 = dr.circlePoints(8, 200, 160).join(','); dr.polygon(p1, 'none', 'olive', 3); dr.polygon(p2, 'none', 'olive', 3); </script>

    灵活使用 circlePoints 指令应该可以绘制出效果炫酷的图案,例如:

    <svg id="msvg" width="400" height="400" viewBox="0 0 400 400"></svg> <script type="module"> import Dr from 'https://638183.freep.cn/638183/web/mod/svgdr.js?v=1'; const dr = Dr.dr(msvg); const ar1 = dr.circlePoints(18, 200, 190); const ar2 = dr.circlePoints(18, 200, 160); let points = ''; for (let j = 0; j < ar1.length; j++) { let k = (j + 1) % ar1.length; points += j % 2 === 0 ? `${ar1[j][0]} ${ar1[j][1]},${ar2[j][0]} ${ar2[j][1]},${ar2[k][0]} ${ar2[k][1]} ` : `${ar2[j][0]} ${ar2[j][1]},${ar1[j][0]} ${ar1[j][1]},${ar1[k][0]} ${ar1[k][1]} `; } points = points.trim(); dr.polygon(points, 'none', 'tan', 3); </script>

    一切取决于创造和实现能力!

    评分

    参与人数 3威望 +110 金钱 +220 经验 +110 收起 理由
    杨帆 + 30 + 60 + 30 精品文章!
    红影 + 50 + 100 + 50 赞一个!
    花飞飞 + 30 + 60 + 30 很给力!

    查看全部评分

  • TA的每日心情
    慵懒
    2025-8-5 16:33
  • 签到天数: 44 天

    [LV.5]常住居民I

    62

    主题

    1万

    回帖

    2万

    积分

    贵宾

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮美女流光溢彩优雅神秘花潮贵宾

    发表于 2025-9-15 20:13 | 显示全部楼层
    先看 一句能看懂的。。
    白老师构思能力一流,实现能力一流,效果一流。。。全是顶流。。
    坚决不是你想说的那个哈。。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-8-5 16:33
  • 签到天数: 44 天

    [LV.5]常住居民I

    62

    主题

    1万

    回帖

    2万

    积分

    贵宾

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮美女流光溢彩优雅神秘花潮贵宾

    发表于 2025-9-15 20:15 | 显示全部楼层
    我的天,最后一个复杂的图案居然是算出来的。。
    不是画出来的。。更高级了。。。
    这是什么神仙指令。。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-8-5 16:33
  • 签到天数: 44 天

    [LV.5]常住居民I

    62

    主题

    1万

    回帖

    2万

    积分

    贵宾

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮美女流光溢彩优雅神秘花潮贵宾

    发表于 2025-9-15 20:20 | 显示全部楼层
    这个多边形图案跟今天的实例很相似,实例里要叠加三层或者多层的话,需要重新计算每个点。
    这个就很容易就实现多层,直接加就完了
    颜色也可以随意更改。。
    妙妙妙。。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-11-30 07:45
  • 签到天数: 1655 天

    [LV.Master]伴坛终老

    3024

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2025-9-15 21:58 | 显示全部楼层
    花飞飞 发表于 2025-9-15 20:20
    这个多边形图案跟今天的实例很相似,实例里要叠加三层或者多层的话,需要重新计算每个点。
    这个就很容易就 ...

    还好
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-11-30 07:45
  • 签到天数: 1655 天

    [LV.Master]伴坛终老

    3024

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2025-9-15 21:59 | 显示全部楼层
    花飞飞 发表于 2025-9-15 20:15
    我的天,最后一个复杂的图案居然是算出来的。。
    不是画出来的。。更高级了。。。
    这是什么神仙 ...

    这是去两个半径不同的外切圆顶点,然后按一定规则交错组合划线
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-11-17 10:56
  • 签到天数: 1050 天

    [LV.10]以坛为家III

    1881

    主题

    32万

    回帖

    37万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮美女虎龙狗猪多彩人生星月交辉海样胸怀火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀相遇之美一往情深花好月圆心香一瓣紫色情节飞龙在天金剪刀天籁妙音妙笔生花风雨同行我心永远天长地久幸福快乐绚丽缤纷喜乐安康中秋征文周年庆指尖上的流年舞会之星分析(喊冤)章总结章杀人王小强章最佳杀刺临屏写诗七夕诗钟活动第五届风云第六届风云情人节花潮管理

    发表于 2025-9-15 21:59 | 显示全部楼层
    circlePoints 指令里的参数很简单。
    绘制两个图案的时候,数据串接的命令直接进入数组里了。
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-11-30 07:45
  • 签到天数: 1655 天

    [LV.Master]伴坛终老

    3024

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2025-9-15 21:59 | 显示全部楼层
    花飞飞 发表于 2025-9-15 20:13
    先看 一句能看懂的。。
    白老师构思能力一流,实现能力一流,效果一流。。。全是顶流。。
    坚决不 ...

    果酱果酱
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-11-17 10:56
  • 签到天数: 1050 天

    [LV.10]以坛为家III

    1881

    主题

    32万

    回帖

    37万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮美女虎龙狗猪多彩人生星月交辉海样胸怀火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀相遇之美一往情深花好月圆心香一瓣紫色情节飞龙在天金剪刀天籁妙音妙笔生花风雨同行我心永远天长地久幸福快乐绚丽缤纷喜乐安康中秋征文周年庆指尖上的流年舞会之星分析(喊冤)章总结章杀人王小强章最佳杀刺临屏写诗七夕诗钟活动第五届风云第六届风云情人节花潮管理

    发表于 2025-9-15 22:00 | 显示全部楼层
    最后那个最神奇,把两个多边形连起来了,得到这么奇妙的图案呢
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-11-30 07:45
  • 签到天数: 1655 天

    [LV.Master]伴坛终老

    3024

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2025-9-15 22:01 | 显示全部楼层
    红影 发表于 2025-9-15 22:00
    最后那个最神奇,把两个多边形连起来了,得到这么奇妙的图案呢

    手工写也是可以的,就是得拿出计算器,还得知道一些公式
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-11-30 07:45
  • 签到天数: 1655 天

    [LV.Master]伴坛终老

    3024

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2025-9-15 22:01 | 显示全部楼层
    红影 发表于 2025-9-15 21:59
    circlePoints 指令里的参数很简单。
    绘制两个图案的时候,数据串接的命令直接进入数组里了。

    这是综合应用了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-12-15 11:29
  • 签到天数: 12 天

    [LV.3]偶尔看看II

    816

    主题

    804

    回帖

    3万

    积分

    贵宾

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪奔放热烈春风拂面缤纷心情王者至尊大将风范金剪刀音画大师天籁妙音妙笔生花

    发表于 2025-9-15 23:19 | 显示全部楼层
    中间再加一个元,很像&#9881;&#65039;&#9881;&#65039;&#9881;&#65039;&#9881;&#65039;&#9881;&#65039;&#9881;&#65039;&#9881;&#65039;&#9881;&#65039;&#9881;&#65039;&#9881;&#65039;&#9881;&#65039;

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-11-17 10:56
  • 签到天数: 1050 天

    [LV.10]以坛为家III

    1881

    主题

    32万

    回帖

    37万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮美女虎龙狗猪多彩人生星月交辉海样胸怀火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀相遇之美一往情深花好月圆心香一瓣紫色情节飞龙在天金剪刀天籁妙音妙笔生花风雨同行我心永远天长地久幸福快乐绚丽缤纷喜乐安康中秋征文周年庆指尖上的流年舞会之星分析(喊冤)章总结章杀人王小强章最佳杀刺临屏写诗七夕诗钟活动第五届风云第六届风云情人节花潮管理

    发表于 2025-9-15 23:26 | 显示全部楼层
    马黑黑 发表于 2025-9-15 22:01
    手工写也是可以的,就是得拿出计算器,还得知道一些公式

    手工写肯定不如这个方便呢
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-11-17 10:56
  • 签到天数: 1050 天

    [LV.10]以坛为家III

    1881

    主题

    32万

    回帖

    37万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮美女虎龙狗猪多彩人生星月交辉海样胸怀火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀相遇之美一往情深花好月圆心香一瓣紫色情节飞龙在天金剪刀天籁妙音妙笔生花风雨同行我心永远天长地久幸福快乐绚丽缤纷喜乐安康中秋征文周年庆指尖上的流年舞会之星分析(喊冤)章总结章杀人王小强章最佳杀刺临屏写诗七夕诗钟活动第五届风云第六届风云情人节花潮管理

    发表于 2025-9-15 23:26 | 显示全部楼层

    嗯嗯,这个综合应用更简洁。
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-11-30 07:45
  • 签到天数: 1655 天

    [LV.Master]伴坛终老

    3024

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2025-9-16 12:24 | 显示全部楼层
    红影 发表于 2025-9-15 23:26
    嗯嗯,这个综合应用更简洁。

    还好
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-11-30 07:45
  • 签到天数: 1655 天

    [LV.Master]伴坛终老

    3024

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2025-9-16 12:25 | 显示全部楼层
    红影 发表于 2025-9-15 23:26
    手工写肯定不如这个方便呢

    对。比方说要绘制二三十个圆,手写的话肯定很麻烦。等下我做个帖子,里面就用到很多个圆,我就用那个新指令 circlePoints 来协助完成。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-11-30 07:45
  • 签到天数: 1655 天

    [LV.Master]伴坛终老

    3024

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2025-9-16 12:29 | 显示全部楼层
    亚伦影音工作室 发表于 2025-9-15 23:19
    中间再加一个元,很像&#9881;&#65039;&#9881;&#65039;&#9881;&#65039;&#9881;&#65039;&#9881;&#65039;&#988 ...

    你这些怎么都看不到图像
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2025-11-30 00:22
  • 签到天数: 380 天

    [LV.9]以坛为家II

    297

    主题

    2548

    回帖

    1万

    积分

    版主

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生鹰傲苍穹飞龙在天王者至尊大将风范花潮版主

    发表于 2025-9-16 12:49 | 显示全部楼层
    又一个很有意义的封装,马老师您辛苦了
    ★青春是一个人的精神生命,奋斗是一个人最大的体面,学习是一个人最美的姿态。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-12-15 11:29
  • 签到天数: 12 天

    [LV.3]偶尔看看II

    816

    主题

    804

    回帖

    3万

    积分

    贵宾

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪奔放热烈春风拂面缤纷心情王者至尊大将风范金剪刀音画大师天籁妙音妙笔生花

    发表于 2025-9-16 16:44 | 显示全部楼层
    马黑黑 发表于 2025-9-16 12:29
    你这些怎么都看不到图像

    很想齿轮!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-11-30 07:45
  • 签到天数: 1655 天

    [LV.Master]伴坛终老

    3024

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2025-9-16 18:07 | 显示全部楼层

    额,就是齿轮呀
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    小黑屋|手机版|Archiver|服务支持:DZ动力|huachaowang.com Inc. ( 蜀ICP备17032287号-1 )

    GMT+8, 2025-11-30 15:08 , Processed in 0.086764 second(s), 29 queries .

    Powered by Discuz! X3.4

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表