自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 收藏
  • 关注

原创 给物体添加LineSegments,导致Raycaster不准确(拾取范围扩大)的问题

检测所有在射线与这些物体之间,包括或不包括后代的相交部分。返回结果时,相交部分将按距离进行排序,最近的位于第一个),相交部分和.intersectObject所返回的格式是相同的。降低射线投射器的阙值,这样边界就不会在射线视野中占据太多空间。Raycaster()主要有两个方法。其实两个很像,区别只是第一个参数。可以将想要求交的物体放入其中。什么是射线投射器的阙值。

2024-05-24 19:01:48 238

原创 threejs利用dat.gui选取颜色

其次添加方法用的是addColor。首先得传入的是十六进制。

2024-05-23 18:59:02 38

原创 mac快捷键--持续更新

【代码】mac快捷键--持续更新。

2024-05-23 16:14:19 62

原创 深拷贝和浅拷贝

深拷贝和浅拷贝是只针对Object和Array这样的引用数据类型的。,而不复制对象本身,新旧对象还是同一块内存。但,新对象跟原对象内存,修改新对象不会改到原对象。

2024-05-23 14:52:33 471

原创 应用transform control 调节物体y轴时,紧贴地面的效果

在控制物体改变的的时候,检测鼠标抬起,然后检测当前控制模式是否为scale,如果是,检测当前捕捉物体是否是期望的物体。0.01是为了预防深度冲突的问题。

2024-05-22 15:14:38 455

原创 .displacementMap 用贴图贴出3D效果

看到群友的调参群友的贴图效果。

2024-05-22 14:44:06 177

原创 变量的生命周期和作用域

全局变量活得和您的应用程序(窗口、网页)一样久。局部变量活得不长。它们在函数调用时创建,在函数完成后被删除。在网页中,全局变量属于 window 对象。全局变量能够被页面中(以及窗口中)的所有脚本使用和修改。局部变量只能用于其被定义的函数内部。对于其他函数和脚本代码来说它是不可见的。拥有相同名称的全局变量和局部变量是不同的变量。修改一个,不会改变其他。不通过var、let或const关键字声明的变量总是全局的,即使它们在函数中创建。

2024-05-20 16:22:15 107

原创 javascript --对象构造器和class的区别

构造器函数:使用函数定义,较为原始的方式。class:使用类的语法,更直观和现代。构造器函数:方法需要手动添加到原型上。class:方法直接定义在类内部,自动添加到原型上。虽然对象构造器和class在功能上相似,但class提供了更清晰和简洁的语法,是ES6之后更推荐的面向对象编程方式。构造器函数依然在某些旧代码和需要兼容性的场景下使用,但在新的开发中,class通常是更好的选择。

2024-05-20 15:49:25 357

原创 Call bind apply的区别

apply接受两个参数,第一个参数是this的指向,第二个参数是函数接受的参数,以数组的形式传入,且当第一个参数为null、undefined的时候,默认指向window(在浏览器中),使用apply方法改变this指向后原函数会立即执行,且此方法只是临时改变this指向一次。

2024-05-20 15:45:49 266

原创 在react中使用matine,没有样式的问题

直接在index.js加上。

2024-05-18 16:48:55 328

原创 threejs --本地坐标和世界坐标 --欧拉角和四元数

Three.js 的 TransformControls 是一种用于在场景中交互式地变换对象的工具。它可以用来控制物体的位置(平移)、旋转和缩放。当使用 TransformControls 来旋转一个物体时,它实际上是通过修改物体的四元数 (quaternion) 来进行的。四元数是一种避免万向节锁并能够表示任何 3D 方向的数学结构。由于它们不受旋转顺序的限制且可以提供平滑的连续旋转,因此它们非常适合用来实现交互式旋转控件。

2024-05-16 10:32:10 743

原创 yarn命令下载了配置了显示不可用--临时解决

【代码】yarn命令下载了配置了显示不可用--临时解决。

2024-05-15 13:57:49 88

原创 threejs---tween补间动画插件--前端接收物体位置信息进行顺滑动画

【代码】threejs---tween补间动画插件--前端接收物体位置信息进行顺滑动画。

2024-05-11 14:09:33 269

原创 react通过onChange传输select的value数据

当 Select 组件的选项变更时,如果组件本身就是设计为直接传递新的值(在这种情况下是选定的车位 ID)给 onChange 回调函数,那么便不需要从事件对象中提取该值。在你的代码中,store.getState().setTargetParkingSpace 准备好接收该 ID,并且被用作 onChange 的回调。这种行为意味着 Select 组件的实现方式是预期其 onChange 属性将一个值传递给回调函数,而不是传递一个完整的事件对象。这在一些UI库中很常见,尤其是那些旨在简化表单处理的库。

2024-05-11 09:54:00 313

原创 节流和防抖

就是拧紧水龙头让水少流一点,但是不是不让水流了。那在JS里有没有这种情况呢,典型的场景是图片懒加载监听页面的scoll事件,或者监听鼠标的mousemove事件,这些事件对应的处理方法相当于水,由于scroll和mousemove在鼠标移动的时候会被浏览器频繁的触发,会导致对应的事件也会被频繁的触发(水流的太快了),这样就会造成很大的浏览器资源开销,而且好多中间的处理是不必要的,这样就会造成浏览器卡顿的现象,这时候就需要节流,如何节流呢?我们无法做到让浏览器不去触发对应的事件,但是可以做到让处理事件的方法。

2024-05-10 19:35:13 326

原创 BufferGeometry--持续更新

在Three.js中,BufferGeometry 对象的 .center() 方法是用于将几何体的原点(0, 0, 0)移到其包围盒的中心。这通常在你想要旋转、缩放或者对齐几何体时非常有用,因为它确保了这些操作是相对于几何体的中心进行的。通过 .center() 方法,模型的几何中心和原点重合,自然旋转也就是围绕几何中心进行的。一旦调用,原始的顶点位置将不再保持,除非你有备份。总之,.center() 提供了一种便捷方式来重新定位几何体,以便后续任何变换都相对于几何体的视觉中心。找到该包围盒的中心点。

2024-05-09 20:12:29 523

原创 欧拉角(Euler)和四元数(Quaternion)

欧拉角是三个角度参数,它们描述了一个物体围绕三个主轴X、Y和Z顺序旋转的情况。三个角分别对应于偏航(Yaw)、俯仰(Pitch)和翻滚(Roll)。使用欧拉角进行旋转操作比较直观,并且容易理解。然而,它们有一个著名的问题,即,这是由于旋转顺序导致旋转自由度的丧失所引起的现象。

2024-05-09 18:53:27 586

原创 2024.5.8 2.二叉树的最大深度 (简单)

给定一个二叉树 root ,返回其最大深度。二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。输入:root = [3,9,20,null,null,15,7]输出:3输入:root = [1,null,2]输出:2。

2024-05-08 22:03:14 960

原创 2024.5.8 1.移除元素 (简单)

给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。

2024-05-08 21:46:11 126

原创 2024.5.6 1.有效的数独

请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。1.数字 1-9 在每一行只能出现一次。2.数字 1-9 在每一列只能出现一次。3.数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图)输入:board =输出:true输入:board =输出:false解释:除了第一行的第一个数字从 5 改为 8 以外,空格内其他数字均与 示例1 相同。

2024-05-06 16:06:15 723

原创 2024.4.29 3.赎金信

给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。如果可以,返回 true;否则返回 false。magazine 中的每个字符只能在 ransomNote 中使用一次。

2024-04-29 19:56:53 148

原创 2024.4.29 2.验证回文串(简单)

如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个 回文串。字母和数字都属于字母数字字符。给你一个字符串 s,如果它是 回文串 ,返回 true;否则,返回 false。提示:s 仅由可打印的 ASCII 字符组成。

2024-04-29 19:40:30 59

原创 2024.4.29 合并两个有序数组

给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n。

2024-04-29 18:15:24 186

原创 按键冲突ctrl和ctrl+z

原因是我将ctrl+z事件写在keyup时的触发,并且在keyup的ctrl之前用的是if-else判断,消除事件自然而然也就不触发了。并且谨慎使用if-else连续判断,否则当键盘事件变多的时候不易维护,容易出bug。在开发当中,我分别在keydown和keyup中编写了ctrl的事件。是为了按住ctrl时进入特定的场景编辑模式,送开始消除特殊的模式。书写keydown和keyup触发事件要选择好合适的时机。当我按住ctrl+z时,再松开特殊场景模式没有消除。当我编写ctrl+z的功能时,bug出现了。

2024-04-29 16:40:16 124

原创 react-mosaic-component-一个React库--窗格布局

react-mosaic-component是一个React库,用于创建可调整大小和可拖动的窗格布局。这通常用于构建复杂的用户界面,其中需要多个工作区或面板,用户可以根据需要重新排列或调整它们的大小。例如,它可以在IDEs或数据分析应用程序中找到应用。只有在项目的依赖项中已经添加了react-mosaic-component包之后,上述导入语句才能正确工作。从名为react-mosaic-component的npm包中引入三个组件:Mosaic,MosaicWindow和MosaicZeroState。

2024-04-29 09:42:12 798

原创 JavaScrip--数组迭代

forEach() 方法回调函数上面的例子只用了 value 参数。

2024-04-28 13:14:13 236

原创 偶然的bug--关于chrom版本更新导致的

同样的代码,在同组成员那的前端button是可以正常点击触发的。这个是分享贴 如果有大佬知道可能造成的原因,欢迎评论区指导。最后发现我的chrom是待更新,我突发奇想是不是这个问题。结果更新重启以后,按钮正常了。(包括环境、操作系统都一致 排除了)但是我的却一直无法聚焦点击触发。今天出现一个很无语的bug。思来想去找不到问题。

2024-04-26 18:04:21 98

原创 DOM--事件监听--冒泡/捕获

addEventListener() 方法。addEventListener() 方法为元素附加事件处理程序而您能够向一个元素添加多个事件处理程序。您向一个元素,例如两个 “click” 事件。您能够向任何 DOM 对象添加事件处理程序而非仅仅 HTML 元素,例如 window 对象。addEventListener() 方法使我们更容易控制事件如何对冒泡作出反应。当使用 addEventListener() 方法时,JavaScript 与 HTML 标记是分隔的,已达到更佳的可读性;

2024-04-26 10:43:35 241

原创 场景2D/3D模式

此章比较简短提供一个思路后续有想法会继续更新。

2024-04-25 09:53:44 123

原创 linux tmux终端分屏使用

在linux系统中,执行某个命令后,有时需要实时观察该命令导致某些文件内容变化的情况。常见的方法就是打开两个命令行终端,来回切换查看,这种体验不是很好,这时,如果能将命令操作屏幕和文件显示屏幕放在一个屏幕分屏显示,体验将会更好。tmux工具就可以解决这个问题,将一个屏幕分屏显示。

2024-04-25 09:44:04 167

原创 监听事件--解决keydown重复触发

Javascript中keydown会重复触发,导致了重复提交的问题。

2024-04-24 18:03:42 135

原创 JavaScript--DOM-- .dispatchEvent()派发事件

是 DOM API 中的一个方法,用于在节点上触发指定的事件。你可以使用这个方法来模拟用户交互或者通知代码中其他部分某些事情已经发生。JavaScript 允许你创建不同类型的事件,例如 Event, CustomEvent, MouseEvent, KeyboardEvent 等。每种事件类型都可能有自己特定的初始化方法。对于自定义事件,你通常会使用 new CustomEvent() 构造函数。创建事件后,你可以通过调用在 DOM 节点上可用的 dispatchEvent 方法来派发它。

2024-04-23 17:04:17 353

原创 JavaScript--Object.defineProperty()

Object.defineProperty() 是 JavaScript 中的一个方法。它允许你精确地添加新属性或修改现有属性在一个对象上,并对属性的特性进行配置。使用这个方法可以控制属性的行为,比如它们是否可写、可枚举(能否通过 for…in 循环遍历到)、配置性(能否被删除或者修改特征)等。

2024-04-23 16:43:19 422 1

原创 ExtrudeGeometry+Shape实现由二维平面变为立体模型

使用路径以及可选的孔洞来定义一个二维形状平面。方法一方法二你可以简单理解为这个类定义了二维多边形的边界。

2024-04-22 16:41:50 327

原创 深度冲突--threejs(webgl)

很多时候一个物体会具有点、线、面三种模式。如果需要同时绘制多种模式,比如以面和线模式绘制两遍模型,可能会看到线不连续,当镜头推远推近时会出现闪烁现象。直线和多边形的光栅化方式并不完全相同,在线上和多边形边缘上产生的像素的深度值通常并不相同。但是深度是有精度限制的,距离视点越远,精度越低,由于舍入误差会造成判断错误,进而导致渲染上问题。在深度检测之前,可以对zbuffer值进行一个偏移,即多边形偏移。

2024-04-22 14:49:04 685

原创 Git--基础学习--面向企业--持续更新

(1)可以设置SSH公钥的方式连接远程仓库,更安全方便;(参考:http://t.csdn.cn/mx7Pr)(2)使用Git命令窗口操作,虽然简洁高效,但非常容易操作失误(如文件未加入暂存区、未提交至版本库、分支未提交等等),可以使用tortoisegit,是一款专门为Git提供可视化操作的工具(官网:https://download.tortoisegit.org/tgit/)

2024-04-22 13:06:53 1229 1

原创 js中类的继承--extends

创建类继承,需要使用extends关键字。官网代码示例在Model的构造方法中我们看到了super()在 constructor 方法中调用,我们。继承对于代码可重用性很有用:在创建新类时现有类的属性和方法。

2024-04-16 20:06:21 371

原创 JavaScript中的this关键字

id : 678,

2024-04-16 18:04:24 1061

原创 js中的类

ES6引入了 JavaScript 类。JavaScript 类是 JavaScript 对象的模板,因此js里的类不是对象。

2024-04-16 16:42:24 249

原创 GLTF加载器(GLTFLoader)

glTF(gl传输格式)是一种开放格式的规范 (open format specification), 用于更高效地传输、加载3D内容。该类文件以JSON(.gltf)格式或二进制(.glb)格式提供, 外部文件存储贴图(.jpg、.png)和额外的二进制数据(.bin)。一个glTF组件可传输一个或多个场景, 包括网格、材质、贴图、蒙皮、骨架、变形目标、动画、灯光以及摄像机。

2024-04-16 12:05:06 286

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除