- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
下面的代码应该生成一个立方体和一些点(属于圆环)。我只能看到立方体。我已经搜索了这些点几个小时,但一无所获。
// just a cube
cube = new THREE.Mesh(
new THREE.CubeGeometry(50, 50, 50),
new THREE.MeshNormalMaterial({ wireframe: true }));
// a mesh of the torus
function TorusMesh(R, r, nx, ny) {
var vertices = new Array(nx);
var normals = new Array(nx);
for (var i = 0; i < nx; i++) {
vertices[i] = new Array(ny);
normals[i] = new Array(ny);
var u = i / nx * 2 * Math.PI;
var cos_u = Math.cos(u);
var sin_u = Math.sin(u);
var cx = R * cos_u;
var cy = R * sin_u;
for (var j = 0; j < ny; j++) {
var v = j / ny * 2 * Math.PI;
var rcos_v = r * Math.cos(v);
var rsin_v = r * Math.sin(v);
vertices[i][j] = new THREE.Vector3(
cx + rcos_v * cos_u,
cy + rcos_v * sin_u,
rsin_v
);
normals[i][j] = new THREE.Vector3(
rcos_v * cos_u,
rcos_v * sin_u,
rsin_v
);
}
}
var faces = Array(4);
faces[0] = Array(2 * nx * ny);
faces[1] = Array(2 * nx * ny);
for (var i = 0; i < nx; i++) {
var ip1 = (i == nx - 1 ? 0 : i + 1);
for (var j = 0; j < ny; j++) {
var jp1 = (j == ny - 1 ? 0 : j + 1);
faces[0] = [
ip1 * ny + j,
i * ny + j,
i * ny + jp1,
[normals[ip1][j], normals[i][j], normals[i][jp1]]
];
faces[1] = [
ip1 * ny + j,
i * ny + jp1,
ip1 * ny + jp1,
[normals[ip1][j], normals[i][jp1], normals[ip1][jp1]]
];
var Pair = [faces[0], faces[1]];
}
}
return {
vertices: vertices,
normals: normals
//faces: TODO
}
}
// the vertices as a cloud of dots
var dotGeometry = new THREE.Geometry();
var vertices = TorusMesh(10, 3, 16, 8).vertices;
for (var j = 0; j < 8; j++) {
for (var i = 0; i < 15; i++) {
dotGeometry[j * 15 + i] = vertices[i][j]
}
}
var dotMaterial =
new THREE.PointsMaterial({
size: 5,
sizeAttenuation: false,
color: 0x000000
});
cloud = new THREE.Points(dotGeometry, dotMaterial);
console.log(cloud);
// three js scene
var aspect = window.innerWidth / window.innerHeight;
var camera = new THREE.PerspectiveCamera(150, aspect, 1, 10000);
var scene = new THREE.Scene();
camera.position.set(0, 0, 20);
scene.add(camera);
// dat.gui controls -------------------------------------------------
var dgcontrols = new function () {
this.rotationSpeed = 0.001;
this.zoom = 20;
}
var gui = new dat.GUI({ autoplace: false, width: 350 });
gui.add(dgcontrols, 'rotationSpeed').min(0).max(0.005).name("Rotation speed");
var controller_zoom = gui.add(dgcontrols, 'zoom').min(1).max(3000);
controller_zoom.onFinishChange(function (value) {
camera.position.z = value;
});
// the render() function
var renderer = new THREE.WebGLRenderer();
function render() {
renderer.render(scene, camera);
object.rotation.x += dgcontrols.rotationSpeed;
object.rotation.y += dgcontrols.rotationSpeed;
requestAnimFrame(render);
}
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
window.requestAnimFrame = (function () {
return window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
function (callback) {
window.setTimeout(callback, 1000 / 60);
};
})();
// add objects to the scene
var object = new THREE.Object3D();
scene.add(cloud);
scene.add(cube);
render()
requestAnimFrame(render);
canvas {
width: 100%;
height: 100%
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<script src="https://threejs.org/build/three.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/dat-gui/0.7.3/dat.gui.js"></script>
最佳答案
问题在于您已将顶点直接分配给几何对象,而不是 dotGeometry.vertices
。如果随后将点的颜色更改为白色,您应该会看到正确渲染的点。
这是您更新后的代码的 fiddle :https://jsfiddle.net/f2Lommf5/15833/
// just a cube
cube = new THREE.Mesh(
new THREE.CubeGeometry(50, 50, 50),
new THREE.MeshNormalMaterial({ wireframe: true }));
// a mesh of the torus
function TorusMesh(R, r, nx, ny) {
var vertices = new Array(nx);
var normals = new Array(nx);
for (var i = 0; i < nx; i++) {
vertices[i] = new Array(ny);
normals[i] = new Array(ny);
var u = i / nx * 2 * Math.PI;
var cos_u = Math.cos(u);
var sin_u = Math.sin(u);
var cx = R * cos_u;
var cy = R * sin_u;
for (var j = 0; j < ny; j++) {
var v = j / ny * 2 * Math.PI;
var rcos_v = r * Math.cos(v);
var rsin_v = r * Math.sin(v);
vertices[i][j] = new THREE.Vector3(
cx + rcos_v * cos_u,
cy + rcos_v * sin_u,
rsin_v
);
normals[i][j] = new THREE.Vector3(
rcos_v * cos_u,
rcos_v * sin_u,
rsin_v
);
}
}
var faces = Array(4);
faces[0] = Array(2 * nx * ny);
faces[1] = Array(2 * nx * ny);
for (var i = 0; i < nx; i++) {
var ip1 = (i == nx - 1 ? 0 : i + 1);
for (var j = 0; j < ny; j++) {
var jp1 = (j == ny - 1 ? 0 : j + 1);
faces[0] = [
ip1 * ny + j,
i * ny + j,
i * ny + jp1,
[normals[ip1][j], normals[i][j], normals[i][jp1]]
];
faces[1] = [
ip1 * ny + j,
i * ny + jp1,
ip1 * ny + jp1,
[normals[ip1][j], normals[i][jp1], normals[ip1][jp1]]
];
var Pair = [faces[0], faces[1]];
}
}
return {
vertices: vertices,
normals: normals
//faces: TODO
}
}
// the vertices as a cloud of dots
var dotGeometry = new THREE.Geometry();
var vertices = TorusMesh(10, 3, 16, 8).vertices;
for (var j = 0; j < 8; j++) {
for (var i = 0; i < 15; i++) {
dotGeometry.vertices[j * 15 + i] = vertices[i][j]
}
}
var dotMaterial =
new THREE.PointsMaterial({
size: 5,
sizeAttenuation: false,
color: 0xffffff
});
cloud = new THREE.Points(dotGeometry, dotMaterial);
// three js scene
var aspect = window.innerWidth / window.innerHeight;
var camera = new THREE.PerspectiveCamera(150, aspect, 1, 10000);
var scene = new THREE.Scene();
camera.position.set(0, 0, 20);
scene.add(camera);
// dat.gui controls -------------------------------------------------
var dgcontrols = new function () {
this.rotationSpeed = 0.001;
this.zoom = 20;
}
var gui = new dat.GUI({ autoplace: false, width: 350 });
gui.add(dgcontrols, 'rotationSpeed').min(0).max(0.005).name("Rotation speed");
var controller_zoom = gui.add(dgcontrols, 'zoom').min(1).max(3000);
controller_zoom.onFinishChange(function (value) {
camera.position.z = value;
});
// the render() function
var renderer = new THREE.WebGLRenderer();
function render() {
renderer.render(scene, camera);
object.rotation.x += dgcontrols.rotationSpeed;
object.rotation.y += dgcontrols.rotationSpeed;
requestAnimFrame(render);
}
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
window.requestAnimFrame = (function () {
return window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
function (callback) {
window.setTimeout(callback, 1000 / 60);
};
})();
// add objects to the scene
var object = new THREE.Object3D();
scene.add(cloud);
scene.add(cube);
render()
requestAnimFrame(render);
canvas {
width: 100%;
height: 100%
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<script src="https://threejs.org/build/three.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/dat-gui/0.7.3/dat.gui.js"></script>
关于javascript - 两个场景三个js : CubeGeometry and PointsGeometry - only one appears,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53192053/
我的 CSS 中有以下代码: header input{ width:100%; height:50px; float:left; color:fff; background: rgba(255,25
我一直在尝试使用外观代理 API 将一些默认颜色应用于某些控件,但我遇到了问题。 当我使用诸如...之类的东西将色调颜色应用到 UISegmentedControl 时 UISegmentedCont
我正在将其他人制作的一个现有的小型 Angular JS 应用程序集成到一个不是使用 Angular 构建的现有网站中。 所有 Angular JS 应用程序文件都保存在一个完全独立的目录中,然后用户
我的应用程序在调用 $(document).ready 后向 DOM 添加一些元素。我正在使用 jQuery 1.9.0 以下示例有效。 $(document).on("click", "#box-d
我是 jquery 方面的大菜鸟,我需要弄清楚如何更改此代码: $('.social li').appear(); $(document.body).on('appear', '.social li'
这个问题在这里已经有了答案: Z-index with before pseudo-element (2 个答案) Is it possible to set the stacking order
尽管MSDN和 MDN声明 IE11 似乎根本不支持 webkit-appearance。尝试将 -webkit-appearance 设置为任何声称支持的值时(none、button、textfie
当我尝试克隆 git 用户 HOME 之外的远程 git 时出现错误。 Cloning into test... fatal: '/media/raid/repo/test.git' does not
谁能明白为什么这个 html 代码不起作用。 当图像变得可见时,它应该显示警报,当图像对用户不可见时,它应该再次显示警报。 它也不适用于本地库。
我正在尝试访问 super 英雄 api,但对于某些数据,它一直显示数据未定义。 var html = ""; $.each(data.results,function(i,results){ ht
我需要编写一个小的正则表达式匹配器,它将匹配任何出现的字符串形式 [a-zA-Z]+(_[a-zA-Z0-9]+)? 如果我使用上面的正则表达式,它会匹配所需的部分,但也会匹配到 4_abc 的 ab
在我的网站上,我有多个组件充当每个单独页面的模板,例如“主页”、“关于我”等……我的目标是在每个页面之间实现滑动过渡,我已经使用过渡标签以及添加的“出现”属性和一些 CSS 实现了这一点。我的问题是,
我正在尝试将两个微调器放入工具栏(我正在使用协调器布局) 代码如下
我想让导航栏在使用关闭按钮关闭时消失,或者在关闭屏幕时让导航栏隐藏。 代码如下: - (void)viewDidLoad { [self.navigationController setNav
这个问题不太可能帮助任何 future 的访客;它只与一个小地理区域、一个特定时刻或一个非常狭窄的情况相关,而这些情况通常不适用于互联网的全局受众。如需帮助使这个问题更广泛地适用,visit the
感谢您阅读这个问题,我是 React 新手,我尝试做一个任务应用程序,所以我这样做。 App.js import React, { Component }from 'react' import Rea
我一直在尝试通过 jQuery 删除-webkit-appearance:none; 但没有任何效果。我尝试了以下方法: jQuery(document).ready(function(){ jQ
我为我的选择框设置了样式,它在 chrome 和 safari 上运行良好。 现在我的问题出在 FF 中,我仍然可以看到带有选择框的下拉箭头。 我试过引用this solutions和 this so
我刚刚自学 HTML 和 CSS,但遇到了我的第一个烦人的错误。 这是我的代码: http://pastebin.com/Rk6TjqKZ 到目前为止,这是我唯一的图像,它曾经出现过,但自从将一个类添
如果我能在任何地方找到这方面的任何信息,我就不会问这个问题。我检查了 w3schools、这个网站和谷歌。什么都没有。 那么,是否有一个 css -ms 等同于 -webkit-appearance?
我是一名优秀的程序员,十分优秀!