1
$\begingroup$

I have several 2D figures, and now I want to map them into the 3D space plane, the picture below shows my idea.

enter image description here

The figure above was made by maping texture of the 2D plot on the 3D plane and the idea is from Placing a ContourPlot under a Plot3D

However I think the figure made in this way is not in the good quality and time-consuming, I also note the second idea mentioned in the above link, which extracts graphics primitives from the figures and make them 3D graphics primitives, as in the case discussed here, the picture consists of two different ListContourPlot, suppose they are fig1 and fig2 respectively. I want to use Append to add a zero in the fig2's coordinates and then use the idea provided in How to plot ternary density plots? Michael 2E's answer , I want to find the transformation firstly and then use the GeometricTransformation function to map the 2D figure on the 3D plane, However I meet several mistakes. For example, first I use the Append to add a zero to make the 2D figure's coordinates become 3D.

pts=Append[#,0]&/@fig2[[1,1]];

and then let the coordinate of the fig2 equal to pts

fig2[[1,1]]=pts;

Some mistake occured here. The coordinates of the fig1 become 4-Dimensions, and this is strange to me as I only add one zero after the coordinates, and I don't know how to solve it.

So could you give me some advices to me on this problem ? Besides, the figures I got are plot respectively and they are not consistent in the color,(i.e., even the points in the fig1 and fig2 have the same value, they have different color), could you give me some advice on how to make the color in the different figure consistent ?

$\endgroup$
1
  • $\begingroup$ If you have version 10 you could look at SliceContourPlot3D $\endgroup$
    – ubpdqn
    Feb 22, 2016 at 5:26

1 Answer 1

3
$\begingroup$

SliceContourPlot3D

See documentation. To illustrate:

Manipulate[
 SliceContourPlot3D[
  x^2 + y^2 - z, {planes}, {x, -2, 2}, {y, -2, 2}, {z, -2, 2}, 
  ColorFunction -> "Rainbow", ContourStyle -> None],
 {{planes, "BackPlanes"}, {"BackPlanes", x + y == 0, y + z == 0, 
   x + z == 0}}]

You can customize (multiple planes or surfaces). I post in case it fits needs.

enter image description here

$\endgroup$
1
  • $\begingroup$ Thanks for your answer @ubpdqn, it works, I use MMA 10.0 but have not try this function yet. I used some clumsy method to solve this problem in the past. Maybe I can use this function afterwards. $\endgroup$
    – Ice0cean
    Feb 22, 2016 at 8:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.