Видимые серые края внутри HTML-CanvasJavascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Anonymous
 Видимые серые края внутри HTML-Canvas

Сообщение Anonymous »

Здравствуйте, я пытаюсь экспортировать UVMap для модели, и я заполняю треугольники (сетки) цветом, он работает, но я всегда вижу серые сетки. Я попытался нарисовать линии, если я нарисую линии с разным цветом, я могу видеть линии, но если я выбрал тот же цвет, это всегда серый
любая идея, как это сделать, спасибо < /p>

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

    const { Scene } = tshirtNodes; // Access Three.js state
const geometry = Scene.children[0].geometry; // Access geometry of the 3D model
const uvAttribute = geometry.attributes.uv; // UV data
const indexAttribute = geometry.index; // Triangle indices
const canvasSize = 10000; // Canvas size
const uvArray = uvAttribute.array; // UV coordinates
const indexArray = indexAttribute.array; // Triangle indices
const renderUVMap = () => {
console.log("render uvmap");
for (let i = 0; i < indexArray.length; i += 3) {
const i1 = indexArray[i] * 2;
const i2 = indexArray[i + 1] * 2;
const i3 = indexArray[i + 2] * 2;

const uv1 = { x: uvArray[i1], y: uvArray[i1 + 1] };
const uv2 = { x: uvArray[i2], y: uvArray[i2 + 1] };
const uv3 = { x: uvArray[i3], y: uvArray[i3 + 1] };

let part = null;
for (const [key, condition] of Object.entries(uvConditions)) {
if (
isWithinCondition(uv1, condition) ||
isWithinCondition(uv2, condition) ||
isWithinCondition(uv3, condition)
) {
part = key;
break; // Stop once the part is determined
}
}

if (!part) continue;
if (partColorType[part] === "single") {
const color = colorsForparts[part];
if (!color) continue;

const [r, g, b] = color.map((c) => Math.floor(c * 255));
ctx.fillStyle = `rgb(${r}, ${g}, ${b})`;

ctx.beginPath();

ctx.moveTo(uv1.x * canvasSize, uv1.y * canvasSize);
ctx.lineTo(uv2.x * canvasSize, uv2.y * canvasSize);
ctx.lineTo(uv3.x * canvasSize, uv3.y * canvasSize);
ctx.closePath();
ctx.fill();

// ctx.strokeStyle = `rgb(${r}, ${g}, ${b})`;
// ctx.beginPath();
// ctx.moveTo(uv1.x * canvasSize, uv1.y * canvasSize);
// ctx.lineTo(uv2.x * canvasSize, uv2.y * canvasSize);
// ctx.lineTo(uv3.x * canvasSize, uv3.y * canvasSize);
// ctx.lineWidth = 0.05;
// ctx.stroke();
}
}
};

На левой стороне вы можете видеть сетки как серый и правый зеленый>

Подробнее здесь: https://stackoverflow.com/questions/794 ... tml-canvas
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как устранить видимые края на графике Matplotlib Procolormesh?
    Anonymous » » в форуме Python
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Как устранить видимые края на графике Matplotlib Procolormesh?
    Anonymous » » в форуме Python
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Как устранить видимые края на графике Matplotlib Procolormesh?
    Anonymous » » в форуме Python
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Как настроить содержимое доверенных веб-действий «от края до края» (за строкой состояния)
    Гость » » в форуме Android
    0 Ответы
    133 Просмотры
    Последнее сообщение Гость
  • Compose: Как иметь отступы ime и Scaffold с отступом от края до края, а windowSoftInputMode настроен на настройкуResize
    Anonymous » » в форуме Android
    0 Ответы
    109 Просмотры
    Последнее сообщение Anonymous

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