置顶文章

1.7k 2 分钟

还记得所有AI教程必提的「奥卡姆剃刀原则」吗?即:如无必要,勿增实体。这条原则也被收藏,还有一些不太常见的费茨法则、盖尔定律、康威定律等,都被一一收入囊中。

精选分类

文章列表

2k 2 分钟

所有 demo 和代码可以在 https://www.shadertoy.com/view/X3sBR7 查看

在传统 3D里面,纹理都是离线制作好,结合物体的形状生成的 UV贴图。Shadertoy中我们一切都是实时生成的。也就是我们需要更具实时生成出来的形状 找到对应面的纹理坐标。

2.9k 3 分钟

在一些数字孪生场景特效中,常常有光环的设计。本文在 shadertoy 找了以下三个光环的实现,并解释其实现原理

imgimgimg

2D 的光很简单,一般都有以下类似的函数,当2D 平面的点离发光位置越远,光就衰减了。

img

2.4k 2 分钟

国外超火的前端框架:Astro 5.0 正式发布!

Astro 5.0 带来了全新的 内容层 (Content Layer)服务岛 (Server Islands) 功能,实现了从任意来源加载内容的能力,并将静态缓存内容与动态个性化内容完美结合,进一步提升开发效率和网站性能。

什么是 Astro?

Astro 是专注于构建内容驱动型网站(如博客、营销和电商)的现代 Web 框架,以快速加载和优秀的 SEO 表现为核心优势。


2.3k 2 分钟

前言首先,Vite 中没有 require 相关方法,因为它默认支持 ESM 方式加载模块! 所以,我们要理清如下两个方法: 方法 require() Node.JS 原生方法 ,以 CommonJS 方式加载模块/文件/图片; Webpack 默认支持 ,Vite 不支持; 方法 require.context() Webpack 特定方法,此方法可实现自定义上下文; Vite 不支持; 但 Vite 提供解决方案,请接着往下看! 解决方案require() 加载模块报错 require 未定义 Uncaught (in promise) ReferenceError: require...
795 1 分钟

前言开发基于 Vite + Vue3 的组件库,多个 .vue 文件需要动态加载!注意 import.meta.globEager 已经弃用,请使用 import.meta.glob 来代替! 使用 Glob异步方式 代码第 1 行,注意使用两个 **,匹配当前目录及其嵌套的全部子目录下的文件; 代码第 4 行,异步使用 Promise 加载,所以要在 then 中获取真正的组件对象; const modules = import.meta.glob('./src/components/**/*.vue'); for (const path in...
303 1 分钟

fixedStep() { this.$nextTick(() => { this.tableData.map(item => { this.batchCompu.forEach(v => { item[`batch${v}`] = (Number(item.num) + (v - 1) * Number(item.step)).toFixed(this.digits) }) return...
3.3k 3 分钟

前端1.引入jsencrypt # 使用npm引入 cnpm install jsencrypt 2.创建通用的工具JS 公钥可以通过此网站在线生成 在线生成公钥私钥对示例代码使用的密码格式: 密钥长度:1024 bit 密钥格式:PKCS#8 注意:当使用IDE将密钥转换成一行时,小心换行符,有的IDE不显示。此时可以将文本粘贴到Chrome Console检查! import { JSEncrypt } from 'jsencrypt' /** * 公钥是通过base64加密转化的 *...
369 1 分钟

报错原因:怕全局“this”与局部变量发生混叠。 解决:按照eslint官方给出的解决方式在.eslintrc.js文件中备注this可用的局部变量名称 { '@typescript-eslint/no-this-alias': [ 'error', { allowDestructuring: false, // Disallow `const { props, state } = this`; true by default allowedNames:...