points_geometry = new THREE.Geometry();
points_material = new THREE.PointsMaterial({
color: 0xffff50,
size: 30,
transparent: true,
opacity: 0.8,
map: texture,
depthTest: false,
blending: THREE.AdditiveBlending,
});
points_geometry2 = new THREE.Geometry();
points_material2 = new THREE.PointsMaterial({
color: 0x99ffcc,
size: 30,
transparent: true,
opacity: 0.8,
map: texture,
depthTest: false,
blending: THREE.AdditiveBlending,
});
for (var i = 0; i < movers_num; i++) {
var mover = new Mover();
var range = Math.log(Util.getRandomInt(2, 256)) / Math.log(256) * 250 + 50;
var rad = Util.getRadian(Util.getRandomInt(0, 180) * 2);
var x = Math.cos(rad) * range;
var z = Math.sin(rad) * range;
mover.init(new THREE.Vector3(x, 1000, z));
mover.mass = Util.getRandomInt(200, 500) / 100;
movers.push(mover);
if (i % 2 === 0) {
points_geometry.vertices.push(mover.position);
} else {
points_geometry2.vertices.push(mover.position);
}
}
points = new THREE.Points(points_geometry, points_material);
points2 = new THREE.Points(points_geometry2, points_material2);
scene.add(points);
scene.add(points2);
};
var updatePoints = function() {
var points_vertices = [];
var points_vertices2 = [];
for (var i = 0; i < movers.length; i++) {
var mover = movers[i];
if (mover.is_active) {
mover.applyForce(antigravity);
mover.updateVelocity();
mover.updatePosition();
if (mover.position.y > 1000) {
var range = Math.log(Util.getRandomInt(2, 256)) / Math.log(256) * 250 + 50;
var rad = Util.getRadian(Util.getRandomInt(0, 180) * 2);
var x = Math.cos(rad) * range;
var z = Math.sin(rad) * range;
mover.init(new THREE.Vector3(x, -300, z));
mover.mass = Util.getRandomInt(200, 500) / 100;
}
}
if (i % 2 === 0) {
points_vertices.push(mover.position);
} else {
points_vertices2.push(mover.position);
}
}
points.geometry.vertices = points_vertices;
points.geometry.verticesNeedUpdate = true;
points2.geometry.vertices = points_vertices2;
points2.geometry.verticesNeedUpdate = true;
};
var rotateCamera = function() {
camera.rad2 += Util.getRadian(0.1);
camera.reset();
};
var raycast = function(vector) {
vector.x = (vector.x / window.innerWidth) * 2 - 1;
vector.y = - (vector.y / window.innerHeight) * 2 + 1;
raycaster.setFromCamera(vector, camera.obj);
intersects = raycaster.intersectObjects(scene.children);
};
var render = function() {
renderer.clear();
updatePoints();
rotateCamera();
renderer.render(scene, camera.obj);
};
var renderloop = function() {
var now = Date.now();
requestAnimationFrame(renderloop);
render();
if (now - last_time_activate > 10) {
activateMover();
last_time_activate = Date.now();
}
};
var resizeRenderer = function() {
body_width = document.body.clientWidth;
body_height = document.body.clientHeight;
renderer.setSize(body_width, body_height);
camera.resize(body_width, body_height);
};
init();
},{“./Util”:1,“./camera”:2,“./debounce”:3,“./hemiLight”:5,“./mover”:7}],7:[function(require,module,exports){
var Util = require(‘./util’);
var Force = require(‘./force’);
var exports = function(){
var Mover = function() {
this.position = new THREE.Vector3();
this.velocity = new THREE.Vector3();
this.acceleration = new THREE.Vector3();
this.anchor = new THREE.Vector3();
this.mass = 1;
this.r = 0;
this.g = 0;
this.b = 0;
this.a = 1;
this.time = 0;
this.is_active = false;
};
Mover.prototype = {
init: function(vector) {
this.position = vector.clone();
this.velocity = vector.clone();
this.anchor = vector.clone();
this.acceleration.set(0, 0, 0);
this.a = 1;
this.time = 0;
},
updatePosition: function() {
this.position.copy(this.velocity);
},
updateVelocity: function() {
this.acceleration.divideScalar(this.mass);
this.velocity.add(this.acceleration);
// if (this.velocity.distanceTo(this.position) >= 1) {
// this.direct(this.velocity);
// }
},
applyForce: function(vector) {
this.acceleration.add(vector);
},
applyFriction: function() {
var friction = Force.friction(this.acceleration, 0.1);
this.applyForce(friction);
},
applyDragForce: function(value) {
var drag = Force.drag(this.acceleration, value);
this.applyForce(drag);
},
hook: function(rest_length, k) {
var force = Force.hook(this.velocity, this.anchor, rest_length, k);
this.applyForce(force);
},
activate: function () {
this.is_active = true;
},
inactivate: function () {
this.is_active = false;
}
};
return Mover;
};
module.exports = exports();
},{“./force”:4,“./util”:8}],8:[function(require,module,exports){
arguments[4][1][0].apply(exports,arguments)
},{“dup”:1}]},{},[6])
three.man.js
在这里插入代码片
style.js
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
总结
前端资料汇总
-
框架原理真的深入某一部分具体的代码和实现方式时,要多注意到细节,不要只能写出一个框架。
-
算法方面很薄弱的,最好多刷一刷,不然影响你的工资和成功率😯
-
在投递简历之前,最好通过各种渠道找到公司内部的人,先提前了解业务,也可以帮助后期优秀 offer 的决策。
-
要勇于说不,对于某些 offer 待遇不满意、业务不喜欢,应该相信自己,不要因为当下没有更好的 offer 而投降,一份工作短则一年长则 N 年,为了幸福生活要慎重选择!!!
喜欢这篇文章文章的小伙伴们点赞+转发支持,你们的支持是我最大的动力!文章来源:https://www.toymoban.com/news/detail-853344.html
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
和实现方式时,要多注意到细节,不要只能写出一个框架。
-
算法方面很薄弱的,最好多刷一刷,不然影响你的工资和成功率😯
-
在投递简历之前,最好通过各种渠道找到公司内部的人,先提前了解业务,也可以帮助后期优秀 offer 的决策。
-
要勇于说不,对于某些 offer 待遇不满意、业务不喜欢,应该相信自己,不要因为当下没有更好的 offer 而投降,一份工作短则一年长则 N 年,为了幸福生活要慎重选择!!!
喜欢这篇文章文章的小伙伴们点赞+转发支持,你们的支持是我最大的动力!
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-26ZxT2Jh-1712554896193)]文章来源地址https://www.toymoban.com/news/detail-853344.html
到了这里,关于目前最稳定和高效的UI适配方案,【时光隧道,前端开发特点的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!