How to get selected faces in a plotted 3D geometry

4 views (last 30 days)
Hello everyone.
I am coding a finite element method solver for my final project in engineering. I want to be able to select faces within a 3D geometry plotted to the user, more specifially in the mesh or maybe the originial geometry really. Think of the attached figure, but without the internal nodes being displayed, having patches filling the surfaces. The attached figure is still a preliminary figure for what's being done. I will still do some code to leave only the boundary nodes visible and yada yada.
Anyways, what would be enough for me is to be able to click on a patch at the figure window and have its id (or something equivalent) returned to a variable so I can keep track of the boundaries the user is selecting. Is there any method available to know which patch surface (or any other equivalent 3D surface) the user has selected? The same applies to boundary lines and points, but let's focus first on surfaces.
Thank you
Capturar.PNG
  2 Comments
Xiwen
Xiwen on 8 Apr 2024
Hi, have you figure out this problem yet? I am looking for a solution. Thanks
Alexandre Piccini
Alexandre Piccini on 12 Apr 2024
@Xiwen You essentially have to use callbacks on the patch objects you create, which are functions you will embed into them. You can assign a behaviour that will be triggered by clicking on the patch (ButtonDownFcn), for instance. MATLAB being MATLAB, however, means you shouldn't get too excited adding a lot of functionality like that before things become really slow from the UI/UX perspective.
Do a Ctrl+F for "callback" on the page below:
https://www.mathworks.com/help/matlab/ref/matlab.graphics.primitive.patch-properties.html

Sign in to comment.

Answers (1)

darova
darova on 7 Jun 2019
Try to change
Untitled.png

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!