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 Kommentare

Jan
Jan am 20 Dez. 2020
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.
rocketMan
rocketMan am 20 Dez. 2020
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?
rocketMan
rocketMan am 21 Dez. 2020
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.
it prints
flat
none
Jan
Jan am 21 Dez. 2020
Okay, so the is a change. But the displayed object does not change, because there is no light() object, which could influence the lighting?
rocketMan
rocketMan am 22 Dez. 2020
Yes, I suppose so

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Mario Malic
Mario Malic am 21 Dez. 2020
Bearbeitet: Mario Malic am 21 Dez. 2020

0 Stimmen

After you change properties, try with drawnow.
Wrong(FaceColor, FaceAlpha, EdgeColor, LineStyle are the only properties for patch.)

8 Kommentare

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

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Graphics Performance finden Sie in Hilfe-Center und File Exchange

Gefragt:

am 20 Dez. 2020

Kommentiert:

am 22 Dez. 2020

Community Treasure Hunt

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

Start Hunting!

Translated by