Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

401
Visualizações
¿Cómo cortar una figura (modelo 3D) con un avión en 2 partes?

por favor dígame cómo cortar una figura en un plano en 2 partes, algo como en la imagen

ingrese la descripción de la imagen aquí

Traté de hacer como en este enlace, pero no funcionó, tal vez alguien más te diga cómo puedes dividir la figura en 2 partesTres JS - ¿Cómo cortar un objeto 3D con el plano Y?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Hay dos maneras de hacer esto:

Planos de clonación y recorte

Primero, active los planos de recorte locales. Esto le permitirá recortar una malla sin afectar a otra malla.

 const renderer = new WebGLRenderer() renderer.localClippingEnabled = true

A continuación, clone la malla. Idealmente, crearía una instancia de Mesh , pero la idea es que tenga una copia de la forma. ADEMÁS, clone y fije el material de la copia.

 let clonedMesh = yourMesh.clone() clonedMesh.material = clonedMesh.material.clone()

Ahora, desea crear dos planos de recorte, "mirando" en direcciones opuestas, y establecer uno en su malla original y el otro en el clon. Esto se hace a través del Material (razón por la cual necesitabas un clon y no una referencia). (Nota: los puntos normales en la dirección en la que el plano de recorte MANTENDRÁ visible).

 let localPosition = new Vector3() let normal = new Vector3(0, 1, 0) // +Y as an example let clipPlane1 = new Plane().setFromNormalAndCoplanarPoint( normal, localPosition ) normal.negate() // flips the normal let clipPlane2 = new Plane().setFromNormalAndCoplanarPoint( normal, localPosition ) originalMesh.material.clippingPlanes = [ clipPlane1 ] clonedMesh.material.clippingPlanes = [ clipPlane2 ]

Ahora, cuando renderice, las dos formas se recortarán en diferentes direcciones, exponiendo solo su "lado" de la forma cortada. Debido a que son locales para cada forma, puede transformar la forma y el plano de recorte para esa forma lo seguirá.

División basada en geometría

Este es un tema mucho más amplio, y no voy a entrar en detalles. La idea general es que tienes un plano que interseca tu geometría. Si un triángulo en su geometría se cruza con el plano, entonces debe reemplazarlo con nuevos triángulos de modo que sus bordes queden EN el plano, en lugar de atravesarlo. Realizaría esta operación en ambas direcciones, creando dos zonas de influencia geométricas distintas, que tendrían que asignarse a Mesh distintas.

Es probable que existan herramientas compatibles con three.js que puedan realizar estas operaciones por usted. Desafortunadamente, no conozco ninguno en la parte superior de mi cabeza.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda