- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想创建一个垂直标尺,其测量值如下图所示。任何人都可以帮助我。
var material = new THREE.LineBasicMaterial({
color: 0x07E1E1,
linewidth: 3
});
var geometry = new THREE.Geometry();
geometry.vertices.push(
new THREE.Vector3( 0, 0, 0 ),
new THREE.Vector3( 0, 1100, 0 ),
new THREE.Vector3( 0, 0, 0 )
);
var line = new THREE.Line( geometry, material );
scene.add( line );
line.position.set(-550, -550, 200);
但它并没有像图像和测量值那样......
最佳答案
您可以使用 LineBasicMaterial 和 Line 元素。
var camera, scene, renderer, object;
init();
function init() {
var container;
container = document.getElementById( 'container' );
camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 1, 1100 );
camera.target = new THREE.Vector3( 0, 0, 0 );
scene = new THREE.Scene();
object = new THREE.Object3D();
var lineMtr = new THREE.LineBasicMaterial({ color: 0xffffff, linewidth: 3, opacity: 1 });
var geo = new THREE.Geometry();
geo.vertices.push(new THREE.Vector3(0, 10 ,3));
geo.vertices.push(new THREE.Vector3(0, 0 ,3));
var line = new THREE.Line(geo, lineMtr);
var i = 0, l = 10;
object.add(line);
while (i <= l) {
var geoSegm = new THREE.Geometry();
geoSegm.vertices.push(new THREE.Vector3(0.1, i, 3));
geoSegm.vertices.push(new THREE.Vector3(0, i, 3));
var lineSegm = new THREE.Line(geoSegm, lineMtr);
object.add(lineSegm);
var textSprite = makeTextSprite((i * 10).toString(), {r: 255, g: 255, b: 255, a: 255}, new THREE.Vector3(0.2, i, 3), Math.PI);
object.add(textSprite);
i++;
}
renderer = new THREE.WebGLRenderer();
renderer.setPixelRatio( window.devicePixelRatio );
renderer.setSize( window.innerWidth, window.innerHeight );
}
function animate() {
requestAnimationFrame( animate );
renderer.render( scene, camera );
}
您可以为 SpriteMaterial 创建纹理,然后将 Sprite 用于标尺文本。
function makeTextSprite(label, fontColor, pos, rot) {
var fontface = "Arial";
var fontsize = 100;
var canvas = document.createElement('canvas');
var context = canvas.getContext('2d');
context.font = "Bold " + fontsize.toString() + "px " + fontface;
var metrics = context.measureText(label);
context.rotate(-Math.PI);
context.translate(-canvas.width, -canvas.height);
context.fillStyle = "rgba(" + fontColor.r + "," + fontColor.g + "," + fontColor.b + "," + fontColor.a + ")";
context.fillText(label, 0, 100);
var texture = new THREE.Texture(canvas);
texture.needsUpdate = true;
texture.center = new THREE.Vector2(0.5, 0.5);
texture.rotation = Math.PI;
var spriteMaterial = new THREE.SpriteMaterial({
map: texture, color: 0xffffff
});
var sprite = new THREE.Sprite(spriteMaterial);
sprite.scale.set(0.25, 0.25, 0.25);
sprite.position.set(pos.x, pos.y, pos.z);
return sprite;
}
我在该链接中使用了代码 http://jsfiddle.net/3mrzL75h/19/乍一看,您看不到标尺,将相机向右拖动。
关于three.js - 三个js : Create a vertical ruler with measurements,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53260137/
我使用官方 helm 图表在 EKS 中运行 loki + grafana + prometheus。 我想根据错误日志消息发送警报,为此我正在尝试使用 loki 标尺。 以下是标尺配置 ruler:
我有以下 robert sedwick 的 C++ 算法程序 Item max(Item a[], int l, int r){ if (l == r) return a[l]; in
您好,我已经搜索了从 eclipse 中移除垂直标尺的方法有一段时间了,但我还没有找到任何解决方案。它甚至没有列在 Eclipse 的帮助部分。 有没有人碰巧知道,如何删除或禁用它? 最佳答案 您只能
如何通过代码切换Ruler,而不是每次需要时都通过菜单项? [textView toggleRuler:self]; 最佳答案 [textView setRulerVisible:FALSE]; 来自
这个问题不太可能帮助任何 future 的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visit
我想创建一个垂直标尺,其测量值如下图所示。任何人都可以帮助我。 var material = new THREE.LineBasicMaterial({ color: 0x07
我正在尝试在条形内添加刻度以创建条形图(水平或垂直)以提供像比例尺一样的 View 。 只是一个小例子: myd <- data.frame (names = c("A", "B", "C", "D"
我问了question before about VerticalRulers , 有了这个提示,我向 VerticalRuler 添加了第二个 Column 并尝试向它添加一个标记,但标记总是出现在
我是一名优秀的程序员,十分优秀!