花潮论坛

搜索
热搜: 活动 交友 discuz
查看: 16|回复: 2

svgdr获取太阳花points数据指令-sun

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

    [LV.Master]伴坛终老

    3024

    主题

    13万

    回帖

    28万

    积分

    管理员

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

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

    发表于 2025-10-5 20:57 | 显示全部楼层 |阅读模式

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

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

    x

    太阳花是迷人的图案,它在SVG或canvas中的实现原理无非就是将指定半径的外切圆圆周上的N多个顶点用线条按一定次序连接起来。现有资料提供的太阳花绘制方案和使用玫瑰线绘制的多叶草实现方式大同小异,它们都在花瓣数、叶片数上存在一个传参奇偶数问题,例如画八叶草、八个顶点的太阳花,传递的参数是 4,并且,你无法通过该方案绘制六叶草、六个顶点的太阳花图案。svgdr 绘制多叶草 clover 指令和刚刚完成的绘制太阳花指令 sun() 则突破了偶数传参困局,想画多少个花瓣、叶片就按实际数量传参,不受奇偶数限制。

    太阳花 sun() 指令解释:

    ☀ 语法 :sun(num, R, r);

    ☀ 参数 :num - 必须参数,正整数,≥ 3,建议 ≥ 7;R - 可选参数,正浮点数,用以确定太阳花外切圆圆心,缺省时值取SVG宽度的一半。支持数组传参,[200,150] 的参数设置意味着太阳花的圆心坐标是 x=200、y=150;r - 可选参数,正浮点数,用以确定太阳花的绘制范围,缺省时取值为 R-10,也支持数组传参,[180,120] 的参数设置将得到椭圆形的太阳花(据说古时候普遍存在这样形状的太阳花)

    ☀ 返回 :SVG多边形标签 polygon 所需的 points 属性值数据

    【附】sun() 指令取点利用内部的 circlePoints() 指令实现,这意味着 circlePoints() 取点指令同样支持 R、r 的数组传参,数组元素为两个,分别代表 cx、cy 圆心坐标,记作 [cx, cy]

    举个实例——

    <svg id="svg" width="800" height="600" style="border: 1px solid gray; margin: 10px;"></svg> <script type="module"> import Dr from 'https://638183.freep.cn/638183/svgdr/svgdr.mod.min.js'; var dr = Dr.dr(svg); // 16花瓣、R在SVG中心、r(绘制范围)290 const points = dr.sun(16, [400,300], 290); // 绘制太阳花并设置填充、填充规则、描边 dr.polygon(points, 'tan', 'red', 2).set('fill-rule', 'evenodd'); </script>

    再给一个缺省 R、r 参数的例子——

    <svg id="svg" width="600" height="600" style="border: 1px solid gray; margin: 10px;"></svg> <script type="module"> import Dr from 'https://638183.freep.cn/638183/svgdr/svgdr.mod.min.js'; var dr = Dr.dr(svg); dr.polygon(dr.sun(21), 'tan', 'red', 2).set('fill-rule', 'evenodd'); </script>

    需要注意的是,缺省 R、r 参数时,svgdr 以SVG的宽度的一般为依据确定圆心 cx、cy,因此应该设置SVG或SVG的viewBox属性宽高一致。

    评分

    参与人数 1威望 +50 金钱 +100 经验 +50 收起 理由
    红影 + 50 + 100 + 50 赞一个!

    查看全部评分

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

    [LV.10]以坛为家III

    1881

    主题

    32万

    回帖

    37万

    积分

    管理员

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

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

    发表于 2025-10-6 00:11 | 显示全部楼层
    还能缺省 R、r 参数啊,被黑黑设计得越来越好了
     
    回复 支持 反对

    使用道具 举报

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

    [LV.Master]伴坛终老

    3024

    主题

    13万

    回帖

    28万

    积分

    管理员

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

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

     楼主| 发表于 2025-10-6 08:49 | 显示全部楼层
    红影 发表于 2025-10-6 00:11
    还能缺省 R、r 参数啊,被黑黑设计得越来越好了

    理想绘制环境下可以使用缺省配置
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2025-11-30 15:48 , Processed in 0.066086 second(s), 28 queries .

    Powered by Discuz! X3.4

    © 2001-2013 Comsenz Inc.

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