Javascript 从随机点生成三个.js形状
我有N个随机点,在这个例子中是20个,有X,Y和Z约束 如何使用Three.js库创建任何最好的闭合形状,给定并仅从N个随机点开始 可能有很多变体,请分享你的Javascript 从随机点生成三个.js形状,javascript,three.js,mesh,points,vertices,Javascript,Three.js,Mesh,Points,Vertices,我有N个随机点,在这个例子中是20个,有X,Y和Z约束 如何使用Three.js库创建任何最好的闭合形状,给定并仅从N个随机点开始 可能有很多变体,请分享你的 var program = new Program(reset,step) program.add('g',false) function reset() { scene.clear() scene.add(new THREE.GridHelper(100,1)) } function step() { } program.
var program = new Program(reset,step)
program.add('g',false)
function reset() {
scene.clear()
scene.add(new THREE.GridHelper(100,1))
}
function step() {
}
program.startup()
var numpoints = 20;
var dots = []; //If you want to use for other task
for (var i = 0 ; i < numpoints ; i++){
var x = Math.random() * (80 - 1) + 1 //Math.random() * (max - min) + min
var y = Math.random() * (80 - 1) + 1
var z = Math.random() * (80 - 1) + 1
var dotGeometry = new THREE.Geometry();
dots.push(dotGeometry);
dotGeometry.vertices.push(new THREE.Vector3( x, y, z));
var dotMaterial = new THREE.PointsMaterial( { size: 3, sizeAttenuation: false, color: 0xFF0000 } );
var dot = new THREE.Points( dotGeometry, dotMaterial );
scene.add(dot);
}
三角测量,沃罗尼,我不在乎,只要告诉我你有什么想法,就会帮我学到很多 您可以创建一个多面体,该多面体是一组3D点的凸包,使用如下模式:
var points = [
new THREE.Vector3( 100, 0, 0 ),
new THREE.Vector3( 0, 100, 0 ),
...
new THREE.Vector3( 0, 0, 100 )
];
var geometry = new THREE.ConvexGeometry( points );
var material = new THREE.MeshPhongMaterial( {
color: 0xff0000,
shading: THREE.FlatShading
} );
mesh = new THREE.Mesh( geometry, material );
scene.add( mesh );
您必须在项目中包括以下内容
<script src="/examples/js/geometries/ConvexGeometry.js"></script>
three.js r.78您可以创建一个多面体,该多面体是一组3D点的凸包,使用如下模式:
var points = [
new THREE.Vector3( 100, 0, 0 ),
new THREE.Vector3( 0, 100, 0 ),
...
new THREE.Vector3( 0, 0, 100 )
];
var geometry = new THREE.ConvexGeometry( points );
var material = new THREE.MeshPhongMaterial( {
color: 0xff0000,
shading: THREE.FlatShading
} );
mesh = new THREE.Mesh( geometry, material );
scene.add( mesh );
您必须在项目中包括以下内容
<script src="/examples/js/geometries/ConvexGeometry.js"></script>
three.js r.78不知道是否有内置的方法,但如果您对数学算法感兴趣,我需要制作一些形状,然后在其中重新定位不同的体积。我是个初学者,但是我现在没有太多时间学习JS和Three.JS。自己做算法对我来说有点难,但是当我看到一个代码时,我有足够的技能去调试/编辑/理解它。我会看看你提供的链接,谢谢你的信息!你是对的。你可以找到已经有人写过的基于javascript的凸包3d算法。但是我刚刚找到了带有three.js的例子。这一个可以找到更多你不需要编写算法的例子@alex747 plz的可能副本如果它解决了你的问题,别忘了接受答案。不知道有没有内置的方法,但是如果你对数学算法感兴趣,我需要做一些形状,然后在其中重新定位不同的体积。我是个初学者,但是我现在没有太多时间学习JS和Three.JS。自己做算法对我来说有点难,但是当我看到一个代码时,我有足够的技能去调试/编辑/理解它。我会看看你提供的链接,谢谢你的信息!你是对的。你可能会发现有人已经编写了基于javascript的凸包3d算法。但我刚刚找到了带有three.js的示例。这一个可以找到更多你不需要编写算法的示例@alex747 plz的可能副本。如果它解决了你的问题,请不要忘记接受答案欢迎使用stackoverflow。请记住点击复选标记接受答案。谢谢。欢迎来到stackoverflow。请记住点击复选标记接受答案。非常感谢。