Set properties of patch doesn't work

Hello,
I'm trying to plot an isosurface in AppDesigner with:
load chestVolume
mask = 1800 <= V & V <= 3200;
p = patch(isosurface(mask));
p.FaceColor = 'red';
and it works fine.
Now I want to set the BackFaceLightning on 'unlit' and FaceLightning (on something, I don't know) so I can see where the inner surface and where he outer surface of the figure is. But when I set the properties nothing changes. Does anybody know why nothing changes and how I can fix it?

8 Comments

You set "FaceLightning (on something, I don't know)" and do not see any changes. I cannot imagine, what this exactly means. Please post a piece of code, which reproduces the problem, if the readers run it by copy&paste.
I set
p.FaceLightning = 'flat' or p.FaceLightning = 'gouraud' or p.FaceLightning = 'none'
(every available value for FaceLightning-property) and it changes nothing
I cannot read your mind and do not know, what "changes nothing" mean. Please explain explicitly, what you expect instead.
Maybe the problem is the typo in your "FaceLightning", because it contain an addition "n" compared to "FaceLighting".
p = patch;
disp(p.FaceLighting)
p.FaceLighting = 'none'
disp(p.FaceLighting)
What do you get as output? Does something change or not? Do you mean the value or how the patch is displayed?
by "changes nothing" I mean that after applying the property the output is the same as before. There are, like, no changes.
I made a typo in the question here, of course it is "FaceLighting", otherwise Matlab would have thrown an exception, so that was not the problem.
I tried the code you suggested, but like before, no changes on the output were detected.
Sorry for asking again, but questions for clarifications are a standard event during finding a solution:
Does the code I have posted really display:
flat
flat
or is the 2nd output 'none'? If the output does not change, your Matlab installation is corrupted and I'd recommend a re-installation. Maybe you are working with admin privileges and have overwritten a function belonging to Matlab's toolboxes.
By the way, the code I have posted is expected to display the same graphical objects: The scene does not contain a light() yet, that the lighting has no effect. Maybe this is the solution you are searching for, but I'm still at the level of finding out, what you observe at all.
Okay, so the is a change. But the displayed object does not change, because there is no light() object, which could influence the lighting?
Yes, I suppose so

Sign in to comment.

Answers (1)

Mario Malic
Mario Malic on 21 Dec 2020
Edited: Mario Malic on 21 Dec 2020
After you change properties, try with drawnow.
Wrong(FaceColor, FaceAlpha, EdgeColor, LineStyle are the only properties for patch.)

8 Comments

patch has a lot of properties. Only some of them are displayed by default.
thanks for the tip, but unfortunately it looks still the same
Can you provide the data if possible to test out the commands ourselves?
the chestVolume is a dataset from Matlab, it should work for you too by "load chestVolume". Just copy the code from the question.
Maybe you own some toolboxes I do not have. load chestVolume does fail due to an unfound file.
It is the ImageProcessing Toolbox that I use

Sign in to comment.

Categories

Find more on Graphics Performance in Help Center and File Exchange

Asked:

on 20 Dec 2020

Commented:

on 22 Dec 2020

Community Treasure Hunt

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

Start Hunting!