Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

399
Vistas
¿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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda