Выдавливание пути без команды z в Three.jsJavascript

Форум по Javascript
Ответить
Anonymous
 Выдавливание пути без команды z в Three.js

Сообщение Anonymous »

Я пытаюсь выдавить этот путь с помощью Three.js (

Код: Выделить всё

'M10,10h100v100').  Вы заметите, что в файле SVG нет команды «z», и это просто ломаная линия, идущая на 100 вправо, а затем на 100 вниз.
Когда я пытаюсь выдавить ее с помощью Three.js и TransformSVGPath()
, фигура закрывается, как если бы существовала команда «z», чтобы вернуться в исходное положение.
Как мне сделать так, чтобы это не выполнялось? это?

Код: Выделить всё

body {
overflow: hidden;
margin: 0;
}

Код: Выделить всё

import * as THREE from 'https://cdn.jsdelivr.net/npm/three@0.116.1/build/three.module.js';

import {
OrbitControls
} from 'https://cdn.jsdelivr.net/npm/three@0.116.1/examples/jsm/controls/OrbitControls.js';
import {
GLTFLoader
} from 'https://cdn.jsdelivr.net/npm/three@0.116.1/examples/jsm/loaders/GLTFLoader.js';
import {
RGBELoader
} from 'https://cdn.jsdelivr.net/npm/three@0.116.1/examples/jsm/loaders/RGBELoader.js';
import {
RoughnessMipmapper
} from 'https://cdn.jsdelivr.net/npm/three@0.116.1/examples/jsm/utils/RoughnessMipmapper.js';

var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera(60, window.innerWidth / window.innerHeight, 1, 1000);
camera.position.set(0, 0, 500);
var renderer = new THREE.WebGLRenderer({
antialias: true
});
var walls;
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);

function transformSVGPath(pathStr) {

const DEGS_TO_RADS = Math.PI / 180,
UNIT_SIZE = 100;
const DIGIT_0 = 48,
DIGIT_9 = 57,
COMMA = 44,
SPACE = 32,
PERIOD = 46,
MINUS = 45;

var path = new THREE.ShapePath();
var idx = 1,
len = pathStr.length,
activeCmd,
x = 0,
y = 0,
nx = 0,
ny = 0,
firstX = null,
firstY = null,
x1 = 0,
x2 = 0,
y1 = 0,
y2 = 0,
rx = 0,
ry = 0,
xar = 0,
laf = 0,
sf = 0,
cx, cy;

function eatNum() {
var sidx, c, isFloat = false,
s;
// Eat delimiters
while (idx < len) {
c = pathStr.charCodeAt(idx);
if (c !== COMMA && c !== SPACE)
break;
idx++;
}
if (c === MINUS)
sidx = idx++;
else
sidx = idx;
// Eat number
while (idx < len) {
c = pathStr.charCodeAt(idx);
if (DIGIT_0 

Подробнее здесь: [url]https://stackoverflow.com/questions/79818239/extruding-a-path-without-the-z-command-in-three-js[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»