avatar
Articles
156
Tags
0
Categories
18

Home
Archives
Categories
Salute Those Who Gaze at the Stars
Home
Archives
Categories

Salute Those Who Gaze at the Stars

无线电研究:第一回
Created2023-09-05|无线电相关系列
由于个人近期的需要,准备着手研究一下无线电,所以就有了本系列,用于一些必要的记录。本文做一个开场热身。 谈及无线电就不得不提电磁波。世界是神奇的,我们都知道空气存在,但是不可见,无线电波亦是如此。任何高于绝对零度(零下273,15摄氏度)的物体,都在发射着电磁波,包括人。温度越高,波长越短。这就是测温枪的原理。想象一下,如果电磁波可见,那么这个世界会是什么样的盛况?我们看每一个人,都是大仙。电磁波的传播速度就是光的速度,30万公里/s,光也是一种电磁波。 无线电波分布在3Hz–3000GHz的频率范围内,被分成了12个波段,如下所示。 无线电特性 频率越低,波长越长,覆盖距离越远,绕射能力越强,穿透能力越低。反之亦反。这就是为什么,在城市中,常见的手持电台都是分米波,就是俗称的UV段中的U,见上图的UHF和VHF。不需要传输的有多远,但需要强悍的穿透力。但是在野外活动,基本就是V段。 电磁波的发射,需要有足够高的震荡频率。频率越高,发射电磁波的本领越大。 电磁波的接收。电磁波在空气中传播时,如果遇到导体,会让导体产生感应电流,感应电流的频率和激发他的电磁波频率一致。当接收 ...
Paperjs:view和tool事件注解
Created2023-09-01|Paperjs专栏
在前面介绍点类的时候,我们有提到过,tool类的实例有鼠标的各种事件,view类的实例也有相关的一些方法。但是,似乎又有些不同。本文将尽可能详细介绍 拿onMouseDown事件举例,我们分别绑定触发点击的函数事件,如下图所示: 从上图中我们能够嗅到一些信息,首先view的优先级高于tool的,且名称还是有点区别的,在view中叫做MouseEvent,而在tool中,叫做ToolEvent事件。其次,很明显,MouseEvent有的ToolEvent都有除了target,基本属于包含于的关系。下面,我们就一个个看这些属性,究竟能干嘛。 关于delta。在view的事件中delta为空,而在tool中是以一个各个属性值均为0的点实例,两者其实等价,那么这个属性是用来干嘛的?对于tool中的delta,官方解释: The difference between the current position and the last position of the mouse when the event was fired. In case of the mouseup event, the ...
闭包详解
Created2023-08-29|前端剑气双修
本文详细介绍闭包的概念、应用场景及一些坑首先搞明白什么是闭包简单说, 一个函数,能访问到它 “创建时” 所在作用域的变量,哪怕这个作用域已经执行结束,函数依然能 “抓着” 这些变量不放。react代码演示: import { useEffect, useState } from "react"; export default function TestPage() { const [count, setCount] = useState(0); useEffect(() => { const timer = setInterval(() => { const newVal = count + 1; console.log("newVal", newVal); setCount(newVal); }, 2000); return () => { clearInterval(timer); }; }, []); ...
Typescript备忘录
Created2023-08-28|前端剑气双修
本文纯属ts的内容备忘录ts能干嘛?将弱类型的js,变为强类型的语言。举例: const fn = (str: string) => { console.log(str) } fn([1,2,3,4]) // err 示例代码中,我们声明的msg是一个数组,但是我们通过类型注解,规定fn的参数应该是一个字符串,配合一些插件工具,显示报错。 那么ts还有其他什么特性吗? 接口,一种声明的约束interface Role { name: string, blood: number } interface Role2 { name: string, old?: number, readonly sex: string } const role: Role = { name: 'hhvcg', blood: 100 } 同一类似,如果role的某些字段,类型同接口定义的不一致,会报错。同时写代码的时候,有字段提示的功能。如果说需要某些字段是可选的,加? ...
网络请求与远程资源:第一回
Created2023-08-28|前端剑气双修
本系列文章主要用于介绍获取网络资源的三种方式:Ajax、Fetch和WebSocket1. Ajax(Asynchronous Javascript + XML),异步js和xml注:ajax基本被淘汰,现在基本是fetch或者axios曾经的页面及其简单。页面类似于公告栏,文字加图片。打开地址拿到资源展示即可。什么?你说你还想要点击交互?刷新页面吧。而作为上古技术的ajax的出现,第一次实现了无需刷新也能重新发送请求获取数据。提到ajax就一定会涉及到XHR(XMLHttpRequest)。下面时经典的ajax请求写法 const xhr = new XMLHttpRequest() xhr.onreadystateChange = function() { // 状态码4代表响应完成 if (xhr.readyState === 4) { if ((xhr.status >= 200 && xhr.status < 300) || xhr.status === 304) { ...
工作者线程系列:第一回
Created2023-08-28|前端剑气双修
本文介绍前端开发中,工作者线程相关的基础知识我们一直都说js是一个单线程语言,这话没错,但又不失完全正确。因为当今的js,已经有了开线程干活的概念。就是说,当某些运算我们呢觉得会耗时较长,严重影响应用性能时,这种操作完全可以开启一个完全独立的线程环境,扔给他一坨数据后转头执行后续任务,然后等到那坨数据被处理好后,拿到输出结果再做进一步的操作。注意:独立线程的处理和当前主线程的执行可以理解为并行的。 官方定义:使用工作者线程,浏览器可以在原始页面环境之外,再分配一个完全独立的二级子环境。这个子环境不能与依赖单线程交互的API互操作(如dom)。但可以与父环境并行执行代码。 工作者线程:目下包含了三种 专用工作者线程, web worker 共享工作者线程 服务工作者线程 专用工作者线程数据的传输有三种情况 结构化克隆算法。当我们用postMessage传输对象时,浏览器会遍历该对象,并在目标上下文生成一个他目标的副本,说白了深拷贝了一份数据。 可转移对象。主线程将对象给到线程后,主线程的该数据被清除,线程环境创建了一个该数据对象。说白了就是一份数据。 SharedArrayBuf ...
Paperjs:像素打印机
Created2023-08-25|Paperjs专栏
本文介绍一个像素打印机的小玩具就是要在画布中,从左上角开始绘制指定大小的像素方块。从左到右,到了边缘折回继续。思路:全局维护一个x,y,用来记录当前的位置,每帧的时候在该位置绘制方块,然后更新xy,直到到达画布的右下角。 效果如下: 动图懒得搞了,将就着看吧。。。完整vue2代码: <!-- * @Author: Hhvcg * @Date: 2022-02-20 15:26:48 * @LastEditors: -_- * @Description: --> <template> <div class="dashboard"> <div class="dashboard-text flex-cc"> <span> 像素打印机 </span> </div> <div class="dashboard-container pd10 flex-cc"> <canvas id="main_canvas" ref="main_canvas" resiz ...
Paperjs:先验内容
Created2023-08-24|Paperjs专栏
本文主要介绍一些paperjs的先验知识(当然英文可以的,你也可以选择直接阅读官方原版文档)。1. 关于paperjs中的图形(path),官方定义如下: In Paper.js, paths are represented by a sequence of segments that are connected by curves. A segment consists of a point and two handles, defining the location and direction of the curves. 在paperjs中,paths(路径,或者说是图形),是由一系列曲线(curves)连接的段(segments),组成的。每个段segment都有一个点和两端的handler组成—->handleIn和handleOut(注意,这三个东西代码层面,都是一个东西,vector)。上图中0,1,2三个segment构成了当前的这个波浪path。handler的作用,用于定义两边的位置及方向。实质就是俩向量,确定该段的始端和末端。为了方便理解,可以直接先将 ...
Paperjs: 序章
Created2023-08-24|Paperjs专栏
最近因为公司项目需要,接触到了paper.js这个库,看完了其官方的示例,倍感惊叹。关注我专栏的同学都知道,自己之前也写过游戏,比如坦克大战,但总感觉太low。要开发一个游戏,涉及到的东西很多,大到游戏的机制设计,小到游戏中的人物角色、NPC类的设计等等。且代码只是实现的游戏机制的手段,作为一个产品,ui也是极其的重要(当然你可以使用虚幻引擎这样的工具–拿来即用,修修改改即可)。看完了paperjs的官方示例,我突然意识到,我找到了一个绝佳的ui武器库。paperjs官方将其形容为向量图形编程界的“瑞士军刀”,在我看来,至少目前看来,也是名副其实的。在本系列接下来的文章中,我会通过研究各种官方有意思的示例代码,掌握该工具库的一些基本使用,然后尝试着,做一些有意思的东西。在这之前,先目睹一番paperjs的强大能力 Tadpoles 蹦迪版的效果如下,其中的每个蝌蚪实例的颜色都是帧数级的在变化: svg引入tiger图像 绘制各种基本图形 画笔工具系列–主要涉及tools工具包及向量相关操作实现 见缝插针 高斯梯度上色 ….等等等。各位看官,敬请期待吧
JS继承相关
Created2023-08-21|前端剑气双修
本文介绍js继承的几种方法1. 原型链继承利用js的原型链,访问实例对象上不存在但是原型对象中存在的属性和方法。缺点就是假继承。父类的引用属性是共享的。 const Parent = function () { this.name = 'parent' this.children = ['son1', 'son2'] } Parent.prototype.getChildren = function() { console.log('儿子们:', this.children) } const Children = function () { } Children.prototype = new Parent() const child = new Children() child.children.push('bitch') child.getChildren() const child2 = new Children() child2.children.push('bitch2') ch ...
1…111213…16
avatar
Miles|佚心
Articles
156
Tags
0
Categories
18
Follow Me
Announcement
変わらない闘志,折れない魂
Recent Post
3d点云项目性能测试2025-12-25
大模型领域调研-第一回2025-12-22
博弈论浅谈2025-12-17
借助AI的能力,实现本地知识库(非工具版)2025-09-26
借助AI的能力,实现本地知识库(工具版)2025-09-25
Categories
  • AI3
  • Miscellany6
  • Paperjs专栏7
  • React系列11
  • Rust系列1
  • Webkit系列4
  • Webpack系列8
  • css专栏5
Archives
  • December 20253
  • September 20255
  • August 20252
  • July 20253
  • March 20251
  • February 20251
  • January 20251
  • December 20241
Info
Article :
156
UV :
-
PV :
-
Last Push :
©2020 - 2025 By Miles|佚心
Framework Hexo|Theme Butterfly