Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

400
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!