0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何通过html+css样式和js的方式实现星星图的效果

电子设计 来源:电子设计 作者:电子设计 2020-12-24 18:13 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

一、前言

在浏览一些图片网站的时候,经常会看到很多的漂亮的星空图,比如,下面的图片。其实这种星星图片的效果,也可以通过html+css样式和js的方式来实现。今天教大家如何实现星星图的效果。

二、项目准备

软件:Dreamweaver

三、实现的目标

每次刷新产生随机的星星个数。显示画布上。

四、项目实现

1. 创建canvas画布<body> <canvas id='canvas'></canvas></body>2. 添加css样式。

给canva 画布加上边框,方便观察。

<style type="text/css"> canvas{ border:2px solid #f00;}</style>3.添加js样式
3.1 设置canvas画布大小 ,定义需要变量。<script type="text/javascript"> var _canvas=document.getElementById("canvas") _canvas.width=500; _canvas.height=500;var r,g ,b,a;</script>3.2 产生随机圆。
for (var j = 0; j < 150; j++) { arc.x=Math.floor(Math.random()*_canvas.width); arc.y=Math.floor(Math.random()*_canvas.height); arc.r=Math.floor(Math.random()*31+10); r=Math.ceil(Math.random()*256); g=Math.ceil(Math.random()*256); b=Math.ceil(Math.random()*256); a=Math.random();
darw();}3.3 定义draw()方法,通过画星星公式,将圆形转换成星星状 for 循环产生随机位置星星。

如何画星星?(公式解析)(图片来源百度)

星星有内切圆和外切圆,每两个点之间的角度是固定的,因此可得到星星的每个点的坐标,画出星星。

随机产生星星for (var i = 0; i < 5; i++) {
_ctx.lineTo(Math.cos((18+72*i)/180*Math.PI)*arc.r+arc.x, -Math.sin((18+72*i)/180*Math.PI)*arc.r+arc.y);
_ctx.lineTo(Math.cos((54+72*i)/180*Math.PI)*arc.r/2+arc.x, -Math.sin((54+72*i)/180*Math.PI)*arc.r/2+arc.y); }3.4 随机产生颜色。

Math函数随机产生0-225的RGB值。

随机颜色 _ctx.fillStyle="rgba(" + r + "," + g + "," + b + "," + a + ")"; _ctx.fill(); _ctx.strokeStyle="rgba(" + r + "," + g + "," + b + "," + a + ")"; _ctx.stroke(); }3.5. 调用draw()方法实现功能。
darw();


审核编辑:符乾江
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • javascript
    +关注

    关注

    0

    文章

    526

    浏览量

    56541
  • Canvas
    +关注

    关注

    0

    文章

    21

    浏览量

    11466
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    STM32G0 系列 CSS 功能及应用问题

    1. 前言STM32 G0 系列 MCU 自带时钟丢失功能,即 CSS 功能,能自动检测 HSE 和 LSE 是否丢失。本文对 CSS 功能进行简单介绍,并对客户在应用 LSECSS 功能的过程中
    发表于 04-15 16:16 0次下载

    高性能低功耗,CSS6404L QSPI pSRAM 成物联网终端存储首选

    随着物联网、嵌入式开发越来越卷,对内存的要求也越来越苛刻:既要小封装、低功耗,又要速度够用、开发简单。今天给大家聊一款很适合玩家和量产项目的芯片——凯芯CSS6404LS-LI,一颗定位精准
    的头像 发表于 04-08 16:33 144次阅读
    高性能低功耗,<b class='flag-5'>CSS</b>6404L QSPI pSRAM 成物联网终端存储首选

    LAT1599_STM32G0 系列 CSS 功能及应用问题

    STM32 G0 系列 MCU 自带时钟丢失功能,即 CSS 功能,能自动检测 HSE 和 LSE 是否丢失。本文对 CSS 功能进行简单介绍,并对客户在应用 LSECSS 功能的过程中发现的问题进
    发表于 03-11 10:49 0次下载

    TE Connectivity CSS-SGAF SMA电缆组件技术解析与应用指南

    TE Connectivity/Linx Technologies CSS-SGAF SMA隔板插孔转未端接端电缆组件提供SMA隔板插孔(母头插座),通过50毫米长0.047"半刚性
    的头像 发表于 11-07 16:21 996次阅读

    设备的状态监测可以通过哪些方式实现

    设备状态监测的核心是 通过 “硬件传感 + 软件自检 + 通信反馈 + 远程联动”,实现对设备 “健康状态、运行状态、安全状态” 的全维度感知 ,具体方式按监测对象和技术手段分类如下: 一、硬件部件
    的头像 发表于 11-07 09:44 1128次阅读

    Arm正式取消Cortex命名!CPU向着高算力进发,Lumex CSS平台加持!

    电子发烧友网报道(文/黄晶晶)日前,在Arm Unlocked上海站技术论坛上,Arm重磅推出智能终端专属 Lumex CSS平台。Lumex CSS是一套专为旗舰级智能手机及下一代个人电脑加速其人
    的头像 发表于 09-17 08:25 3369次阅读
    Arm正式取消Cortex命名!CPU向着高算力进发,Lumex <b class='flag-5'>CSS</b>平台加持!

    案例:使用MB992SK-B助力乐星图乐服Scenter大疆司空2专属服务器

    星图介绍武汉乐星图科技有限公司成立于2018年,是一家集实景三维集群建模计算系统研发、生产、销售与实景三维整体解决方案于一体的高新技术企业。武汉乐星图科技是DJI大疆行业应用生态合作伙伴,
    的头像 发表于 09-12 15:31 926次阅读
    案例:使用MB992SK-B助力乐<b class='flag-5'>星图</b>乐服Scenter大疆司空2专属服务器

    全新Arm Lumex CSS平台实现两位数性能提升

    Arm 控股有限公司(纳斯达克股票代码:ARM,以下简称 Arm)今日宣布推出全新 Arm Lumex 计算子系统 (Compute Subsystem, CSS) 平台,这是一套专为旗舰级智能手机
    的头像 发表于 09-10 16:14 1070次阅读
    全新Arm Lumex <b class='flag-5'>CSS</b>平台<b class='flag-5'>实现</b>两位数性能提升

    星图像智能合成系统全面解析

    星图像智能合成系统全面解析
    的头像 发表于 08-27 14:49 715次阅读
    卫<b class='flag-5'>星图</b>像智能合成系统全面解析

    Arm Zena CSS加速软件和芯片开发进程

    Arm 控股有限公司(纳斯达克股票代码:ARM,以下简称 Arm)近期宣布推出 Arm Zena 计算子系统 (Compute Subsystems, CSS)。作为标准化且预先集成的计算平台
    的头像 发表于 08-25 16:22 2264次阅读

    中科曙光与中科星图在太空计算领域达成合作

    伴随空天信息产业的高速发展,太空计算正成为战略新兴技术高地。在此背景下,近日,中科曙光与中科星图在合肥“2025空天信息大会”上,签署了《太空计算领域的合作开发框架协议》。按协议,双方将围绕技术研发、太空算网建设等课题,共同推动“太空计算”技术创新与应用落地。
    的头像 发表于 07-11 10:56 1400次阅读

    英语单词学习页面+单词朗读实现 -- 【1】页面实现 ##HarmonyOS SDK AI##

    ​先看一下页面效果 ​ 整体页面是一个比较简洁的页面,其中有两个特色功能 对于例句中,能够实现将当前的单词从句子中进行识别并突出显示 对于单词和句子,可以进行朗读,这个朗读使用的是Core
    发表于 06-29 23:24

    ArkUI介绍

    的ArkTS语言,从组件、动画和状态管理三个维度提供UI绘制能力。 类Web开发范式:采用经典的HML、CSS、JavaScript三段式开发方式,即使用HML标签文件搭建布局、使用CSS文件描述
    发表于 06-24 06:41

    HarmonyOS实战:快递信息时间轴效果实现

    前言 快递信息时间轴在购物软件中是必不可少的功能,通过时间轴可以展示快递从发货到派送的每一个环节。本篇文章通过代码的形式详细讲解在鸿蒙日常开发中如何实现时间轴的效果。(篇尾附有完整源码
    的头像 发表于 06-09 16:05 688次阅读
    HarmonyOS实战:快递信息时间轴<b class='flag-5'>效果实现</b>

    CSS6404LS-LI PSRAM:高清语音识别设备的理想存储器解决方案

    CSS6404LS-LI通过 >500MB/s带宽、105℃高温运行及μA级休眠功耗三重突破,成为高清语音设备的理想存储器
    的头像 发表于 06-04 15:45 899次阅读
    <b class='flag-5'>CSS</b>6404LS-LI PSRAM:高清语音识别设备的理想存储器解决方案