The Origin Forum
File Exchange
Try Origin for Free
The Origin Forum
Home | Profile | Register | Active Topics | Members | Search | FAQ | Send File to Tech support
 All Forums
 Origin Forum
 Origin Forum
 Plot the minimum of several planes in a 3d plot

Note: You must be registered in order to post a reply.
To register, click here. Registration is FREE!

Screensize:
UserName:
Password:
Anti-Spam Code:
Format Mode:
Format: BoldItalicizedUnderlineStrikethrough Align LeftCenteredAlign Right Horizontal Rule Insert HyperlinkUpload FileInsert Image Insert CodeInsert QuoteInsert List
   
Message:

* HTML is OFF
* Forum Code is ON
Smilies
Smile [:)] Big Smile [:D] Cool [8D] Blush [:I]
Tongue [:P] Evil [):] Wink [;)] Clown [:o)]
Black Eye [B)] Eight Ball [8] Frown [:(] Shy [8)]
Shocked [:0] Angry [:(!] Dead [xx(] Sleepy [|)]
Kisses [:X] Approve [^] Disapprove [V] Question [?]

 
Check here to subscribe to this topic.
   

T O P I C    R E V I E W
origin_newbie Posted - 05/10/2018 : 12:14:11 AM
Hi,

I am trying to plot the minimum of several plane in a 3d plot. What I have is a number of planes and basically I want to truncate the planes such that only the plane with the lowest value is shown. The attached figure right clarify my point.

On the right are the planes I have, on the right is what I want to achieve. On the right you can see that the planes have been truncated and only the sections with the lowest values are shown. Is there a way to achieve this in orginlab?

Thanks,
Lexa

Lexa
9   L A T E S T    R E P L I E S    (Newest First)
Hideo Fujii Posted - 05/11/2018 : 11:50:57 AM
Hi Lexa,

As far as I tried, when the expression was written in one line like below, it worked:
minpl(x,y)==plane1(x,y)?2:(minpl(x,y)==plane2(x,y)?3:(minpl(x,y)==plane3(x,y)?4:(minpl(x,y)==plane4(x,y)?5:(minpl(x,y)==plane5(x,y)?6:(minpl(x,y)==plane6(x,y)?7:8)))))
How about your case?

--Hideo Fujii
OriginLab
origin_newbie Posted - 05/11/2018 : 02:03:35 AM
Hi Hideo,

Thanks a lot this is exactly what I want! Your example works great.

I have 7 planes and I have set up the equations and the plot looks correct, but for step 4 I have a problem setting up the coloring of each individual plane using the nested conditional operators.

This is what I have tried:

minpl(x,y)==plane1(x,y)?2:(
minpl(x,y)==plane2(x,y)?3:(
minpl(x,y)==plane3(x,y)?4:(
minpl(x,y)==plane4(x,y)?5:(
minpl(x,y)==plane5(x,y)?6:(
minpl(x,y)==plane6(x,y)?7:8
)))))

But all I am getting is a matrix filled with "8".

Is there a way to fix this?

Thanks,
Lexa

Hideo Fujii Posted - 05/10/2018 : 4:59:35 PM
Hi Lexa,

You can make a single surface with such condition, and color the surface segments based on the
source plane from an extra matrix. Assuming that you know every plane's parameters (a, b, and c
in z=ax+by+c). you can try the following sample procedure (with 3 planes of z=x, z=y, and z=0.2*x+0.4*y-1) :
1) In Script window, define functions: Plane1, Plane2, ... for your planes, and minpl(x,y) such as:
    function double plane1(double x, double y) { return    1*x+0*y+0; }
    function double plane2(double x, double y) { return    0*x+1*y+0; }
    function double plane3(double x, double y) { return   0.2*x+0.4*y-1; }
    function double minpl(double x, double y) {return min(plane1(x,y),plane2(x,y),plane3(x,y)); }
2) To make the surface, select "File> New> Function Plot> 3D Function Plot" menu, 
     and enter the formula:
        min(plane1(x,y), plane2(x,y), plane3(x,y)) 
    Set the numbers of Mesh Grids reasonably large not to show the Jaggies.
    We get 3 matrices, and you can delete or hide their plots.
3) Press "D" button at top right corner of the matrix, and select "Add" flyout to add an 
     matrix object, and click "2" image thumbnail in the matrix book to select. 
4) For the color values, select "Matrix> Set Values" menu, and enter the coloring formula 
     using nested conditional operators:
        minpl(x,y)==plane1(x,y)?2:(minpl(x,y)==plane2(x,y)?3:4)
     Here, 2, 3, and 4 are color numbers to be distinguished. 
     (The syntax of the conditional operator is <Condition>?<ValueOnYes):<ValueOnNo> )
5) Make a color-mapped 3D surface plot from the original matrix. Double-click it, and 
    open the Plot Details dialog.
6) Under "Fill" tab, turn ON the "Contour Fill from Matrix" radio button, and select our 
    new matrix object (Mat(2)). 
7) Under "Colormap/Contour" tab, press the Pencil icon for the levels, and enter the 
    From=2(minimum color number), To=4(maximum color number).
8) Customize the color scheme. You can modify a single color at a specific level by pressing its 
    corresponding color swatch. Reducing the number of levels would make the customization easier.
    Click OK to complete the plot customization.
Note that if you want to draw the border lines, show all lines in the Colormap/Contours tab, 
or just use the Draw Line tool.




Hope this works.

--Hideo Fujii
OriginLab
origin_newbie Posted - 05/10/2018 : 06:26:23 AM
Hi,

I have tired that but it did not work. Essentially I want something that automatically displays the surface with the minimum over a number of planes. Perhaps this new figure will illustrate more what I want to achieve.

The clipping option allows me to cut at an arbitrary level parts of the surface, but that is not what I want.

https://www.dropbox.com/s/mcxpkdljpq517sr/3d_plot_marked.png?dl=0

Thanks,
Lexa
AmandaLu Posted - 05/10/2018 : 02:27:12 AM
Hi,

You can clip the surface this way:

1. Double click on the surface to open the Plot Details dialog. Select Layer1 on the left panel and activate the Miscellaneous tab on the right. Check Enable in Clipping group. Click OK to close the dialog.
2. Double click on the Z axis to open the Axis dialog. Change the From and To on the Scale tab.

Thanks,
Amanda
OriginLab Technical Service
origin_newbie Posted - 05/10/2018 : 02:21:21 AM
Hi Amanda,

Yes the one on the left is what I want to achieve. I just want a way to cut the planes such that only the minimum surfaces are shown.

Thanks,
Lexa
AmandaLu Posted - 05/10/2018 : 02:16:52 AM
Hi,

The left is what you want and the right is what you have, right?

Thanks,
Amanda
OriginLab Technical Service
origin_newbie Posted - 05/10/2018 : 02:03:12 AM
Hi,

I have tried using the "insert image", but the image is not showing, here is a link instead:

https://www.dropbox.com/s/tj3ejstejnkbylw/3d_plots_minimum.png?dl=0

Regards,
Lexa
AmandaLu Posted - 05/10/2018 : 01:55:36 AM
Hi,

I cannot see your attached figure. Could you please attach it again?

Thanks,
Amanda
OriginLab Technical Service

The Origin Forum © 2020 Originlab Corporation Go To Top Of Page
Snitz Forums 2000