kopia lustrzana https://github.com/OpenBuilds/OpenBuilds-CONTROL
276 wiersze
7.3 KiB
JavaScript
276 wiersze
7.3 KiB
JavaScript
function drawRuler(xmin, xmax, ymin, ymax) {
|
|
|
|
var length1 = 4
|
|
var length5 = 6
|
|
var length10 = 7
|
|
var unitsval = ""
|
|
// console.log(xmin, xmax, ymin, ymax)
|
|
var ruler = new THREE.Group();
|
|
var material = new THREE.LineBasicMaterial({
|
|
color: 0x888888
|
|
});
|
|
|
|
material.opacity = 0.15;
|
|
|
|
// x axis
|
|
for (i = xmin; i <= xmax; i++) {
|
|
var geometry = new THREE.Geometry();
|
|
geometry.vertices.push(new THREE.Vector3(i, -1, 0));
|
|
geometry.vertices.push(new THREE.Vector3(i, -length1, 0));
|
|
var line = new THREE.Line(geometry, material);
|
|
// line.translateX(-xmax / 2)
|
|
// line.translateY(-ymax / 2)
|
|
ruler.add(line);
|
|
}
|
|
|
|
for (i = xmin; i <= xmax; i++) {
|
|
if (i % 5 == 0) {
|
|
var geometry = new THREE.Geometry();
|
|
geometry.vertices.push(new THREE.Vector3(i, -1, 0));
|
|
geometry.vertices.push(new THREE.Vector3(i, -length5, 0));
|
|
var line = new THREE.Line(geometry, material);
|
|
// line.translateX(-xmax / 2)
|
|
// line.translateY(-ymax / 2)
|
|
ruler.add(line);
|
|
}
|
|
}
|
|
|
|
for (i = xmin; i <= xmax; i++) {
|
|
if (i % 10 == 0) {
|
|
var geometry = new THREE.Geometry();
|
|
geometry.vertices.push(new THREE.Vector3(i, -1, 0));
|
|
geometry.vertices.push(new THREE.Vector3(i, -length10, 0));
|
|
var line = new THREE.Line(geometry, material);
|
|
// line.translateX(-xmax / 2)
|
|
// line.translateY(-ymax / 2)
|
|
ruler.add(line);
|
|
}
|
|
}
|
|
|
|
// y axis
|
|
for (i = ymin; i <= ymax; i++) {
|
|
if (i % 5 == 0) {
|
|
var geometry = new THREE.Geometry();
|
|
geometry.vertices.push(new THREE.Vector3(-1, i, 0));
|
|
geometry.vertices.push(new THREE.Vector3(-length5, i, 0));
|
|
var line = new THREE.Line(geometry, material);
|
|
// line.translateX(-ymax / 2)
|
|
// line.translateY(-ymax / 2)
|
|
ruler.add(line);
|
|
}
|
|
}
|
|
|
|
for (i = ymin; i <= ymax; i++) {
|
|
if (i % 10 == 0) {
|
|
var geometry = new THREE.Geometry();
|
|
geometry.vertices.push(new THREE.Vector3(-1, i, 0));
|
|
geometry.vertices.push(new THREE.Vector3(-length10, i, 0));
|
|
var line = new THREE.Line(geometry, material);
|
|
// line.translateX(-ymax / 2)
|
|
// line.translateY(-ymax / 2)
|
|
ruler.add(line);
|
|
}
|
|
}
|
|
|
|
for (i = ymin; i <= ymax; i++) {
|
|
var geometry = new THREE.Geometry();
|
|
geometry.vertices.push(new THREE.Vector3(-1, i, 0));
|
|
geometry.vertices.push(new THREE.Vector3(-length1, i, 0));
|
|
var line = new THREE.Line(geometry, material);
|
|
// line.translateX(-ymax / 2)
|
|
// line.translateY(-ymax / 2)
|
|
ruler.add(line);
|
|
}
|
|
|
|
var fontsize = 4
|
|
var spacing = -10
|
|
var x = [];
|
|
var y = [];
|
|
for (var i = xmin; i <= xmax; i++) {
|
|
|
|
if (i % 10 == 0) {
|
|
x[i] = this.makeSprite(this.scene, "webgl", {
|
|
x: i,
|
|
y: spacing,
|
|
z: 0,
|
|
text: i + unitsval,
|
|
color: "#cc0000",
|
|
size: fontsize
|
|
});
|
|
ruler.add(x[i]);
|
|
}
|
|
|
|
}
|
|
|
|
for (var i = ymin; i <= ymax; i++) {
|
|
|
|
if (i % 10 == 0) {
|
|
y[i] = this.makeSprite(this.scene, "webgl", {
|
|
x: spacing,
|
|
y: i,
|
|
z: 0,
|
|
text: i + unitsval,
|
|
color: "#006600",
|
|
size: fontsize
|
|
});
|
|
ruler.add(y[i]);
|
|
}
|
|
}
|
|
ruler.name = "Rulers"
|
|
|
|
// var material = new THREE.LineBasicMaterial({
|
|
// color: 0x666666
|
|
// });
|
|
// material.opacity = 0.15;
|
|
// var geometry = new THREE.Geometry();
|
|
// geometry.vertices.push(new THREE.Vector3(xmax, 0, 0));
|
|
// geometry.vertices.push(new THREE.Vector3(xmax, ymax, 0));
|
|
// geometry.vertices.push(new THREE.Vector3(0, ymax, 0));
|
|
// var line = new THREE.Line(geometry, material);
|
|
// ruler.add(line);
|
|
|
|
return (ruler)
|
|
}
|
|
|
|
function drawRulerInches(xmin, xmax, ymin, ymax) {
|
|
|
|
length1 = 1.4;
|
|
length5 = 1.6;
|
|
length10 = 1.7;
|
|
var unitsval = "in"
|
|
|
|
// console.log(xmin, xmax, ymin, ymax)
|
|
|
|
var ruler = new THREE.Group();
|
|
var material = new THREE.LineBasicMaterial({
|
|
color: 0x888888
|
|
});
|
|
|
|
material.opacity = 0.15;
|
|
|
|
// x axis
|
|
for (i = xmin; i <= xmax; i++) {
|
|
var geometry = new THREE.Geometry();
|
|
geometry.vertices.push(new THREE.Vector3(i, -1, 0));
|
|
geometry.vertices.push(new THREE.Vector3(i, -length1, 0));
|
|
var line = new THREE.Line(geometry, material);
|
|
// line.translateX(-xmax / 2)
|
|
// line.translateY(-ymax / 2)
|
|
ruler.add(line);
|
|
}
|
|
|
|
for (i = xmin; i <= xmax; i++) {
|
|
if (i % 5 == 0) {
|
|
var geometry = new THREE.Geometry();
|
|
geometry.vertices.push(new THREE.Vector3(i, -1, 0));
|
|
geometry.vertices.push(new THREE.Vector3(i, -length5, 0));
|
|
var line = new THREE.Line(geometry, material);
|
|
// line.translateX(-xmax / 2)
|
|
// line.translateY(-ymax / 2)
|
|
ruler.add(line);
|
|
}
|
|
}
|
|
|
|
for (i = xmin; i <= xmax; i++) {
|
|
if (i % 10 == 0) {
|
|
var geometry = new THREE.Geometry();
|
|
geometry.vertices.push(new THREE.Vector3(i, -1, 0));
|
|
geometry.vertices.push(new THREE.Vector3(i, -length10, 0));
|
|
var line = new THREE.Line(geometry, material);
|
|
// line.translateX(-xmax / 2)
|
|
// line.translateY(-ymax / 2)
|
|
ruler.add(line);
|
|
}
|
|
}
|
|
|
|
// y axis
|
|
for (i = ymin; i <= ymax; i++) {
|
|
if (i % 5 == 0) {
|
|
var geometry = new THREE.Geometry();
|
|
geometry.vertices.push(new THREE.Vector3(-1, i, 0));
|
|
geometry.vertices.push(new THREE.Vector3(-length5, i, 0));
|
|
var line = new THREE.Line(geometry, material);
|
|
// line.translateX(-ymax / 2)
|
|
// line.translateY(-ymax / 2)
|
|
ruler.add(line);
|
|
}
|
|
}
|
|
|
|
for (i = ymin; i <= ymax; i++) {
|
|
if (i % 10 == 0) {
|
|
var geometry = new THREE.Geometry();
|
|
geometry.vertices.push(new THREE.Vector3(-1, i, 0));
|
|
geometry.vertices.push(new THREE.Vector3(-length10, i, 0));
|
|
var line = new THREE.Line(geometry, material);
|
|
// line.translateX(-ymax / 2)
|
|
// line.translateY(-ymax / 2)
|
|
ruler.add(line);
|
|
}
|
|
}
|
|
|
|
for (i = ymin; i <= ymax; i++) {
|
|
var geometry = new THREE.Geometry();
|
|
geometry.vertices.push(new THREE.Vector3(-1, i, 0));
|
|
geometry.vertices.push(new THREE.Vector3(-length1, i, 0));
|
|
var line = new THREE.Line(geometry, material);
|
|
// line.translateX(-ymax / 2)
|
|
// line.translateY(-ymax / 2)
|
|
ruler.add(line);
|
|
}
|
|
|
|
fontsize = 10
|
|
spacing = -10;
|
|
xmin = Math.floor(xmin * 0.0393701);
|
|
xmax = Math.ceil(xmax * 0.0393701);
|
|
ymin = Math.floor(ymin * 0.0393701);
|
|
ymax = Math.ceil(ymax * 0.0393701);
|
|
|
|
// console.log(xmin, xmax, ymin, ymax)
|
|
|
|
var x = [];
|
|
var y = [];
|
|
for (var i = xmin; i <= xmax; i++) {
|
|
if (i % 1 == 0) {
|
|
x[i] = this.makeSprite(this.scene, "webgl", {
|
|
x: i * 25.4,
|
|
y: spacing,
|
|
z: 0,
|
|
text: i + unitsval,
|
|
color: "#cc0000",
|
|
size: fontsize / 2.54
|
|
});
|
|
ruler.add(x[i]);
|
|
}
|
|
}
|
|
|
|
for (var i = ymin; i <= ymax; i++) {
|
|
if (i % 1 == 0) {
|
|
y[i] = this.makeSprite(this.scene, "webgl", {
|
|
x: spacing,
|
|
y: i * 25.4,
|
|
z: 0,
|
|
text: i + unitsval,
|
|
color: "#006600",
|
|
size: fontsize / 2.54
|
|
});
|
|
ruler.add(y[i]);
|
|
}
|
|
|
|
}
|
|
ruler.name = "Rulers"
|
|
|
|
// var material = new THREE.LineBasicMaterial({
|
|
// color: 0x666666
|
|
// });
|
|
// material.opacity = 0.15;
|
|
// var geometry = new THREE.Geometry();
|
|
// geometry.vertices.push(new THREE.Vector3(xmax, 0, 0));
|
|
// geometry.vertices.push(new THREE.Vector3(xmax, ymax, 0));
|
|
// geometry.vertices.push(new THREE.Vector3(0, ymax, 0));
|
|
// var line = new THREE.Line(geometry, material);
|
|
// ruler.add(line);
|
|
|
|
// ruler.scale.multiplyScalar(25.4);
|
|
|
|
return (ruler)
|
|
} |