Patch FaceVertexCData being overwritten by FaceColor
13 次查看(过去 30 天)
显示 更早的评论
Hello,
I am attempting to set up a patch with R2016b wherein one face of the patch has a certain color, and the rest share another. To do this I set up an (m x 3) array, "FacetColor," that assigned an RGB triplet to every face in the patch, according to its position in the geometry. The patch was then created with the code:
fv=struct('faces',facet,'vertices',vertex);
h=patch(fv,'FaceVertexCData', FacetColor, ...
'EdgeColor', 'none', ...
'FaceLighting', 'gouraud', ...
'AmbientStrength', 0.4);
alpha(h,1);
Unfortunately, whenever I attempt to run this code, MATLAB apparently ignores my FacetColor array and instead uses the default FaceColor value of [0 0 0]. This turns the entire patch uniformly black. I tried setting the FaceColor value to 'none,' thinking that doing so might force MATLAB to use the FaceVertexCData field, but instead it causes the patch to turn invisible. How am I configuring this patch incorrectly?
Any advice or assistance would be appreciated! My thanks in advance.
0 个评论
采纳的回答
Duncan Lilley
2017-9-19
In order for the patch to use the color data you have specified, you must set the "FaceColor" property to be either "flat" or "interp". As you have specified a color for each face, you will likely want to set "FaceColor" to "flat", which indicates that each face will be a uniform color, with "FaceVertexCData" specifying one color per face.
More information about this property and its possible settings can be found on the "patch" documentation page under "Name-Value Pair Arguments", here.
0 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Polygons 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!