Đánh dấu bề mặt trên Plot3D

Sep 04 2020

Có cách nào để đánh dấu một đường cụ thể trên biểu đồ Plot3D trong thang đo Nhật ký không. Cốt truyện ban đầu của tôi là:

Plot3D[(y/(0.5*y + 2*x)), {x, 1/10^10, 1/10^3}, {y, 0, 4.5/10^6}, 
 ScalingFunctions -> {"Log", "Log", None}, 
 ColorFunctionScaling -> True]

`` Nếu không nằm trong thang đo Nhật ký, tôi biết mình có thể sử dụng ParametricPlot3D và sử dụng Hiển thị để chồng chúng lại với nhau. Nhưng một khi tôi vẽ nó trong thang đo Nhật ký, thì ParametricPlot không thể hiển thị trong thang đo Nhật ký. Những gì tôi muốn có là một cái gì đó như thế này:

    Plot3D[(y/(0.5*y + 2*x)), {x, 1/10^10, 1/10^3}, {y, 0, 4.5/10^6}, 
 ScalingFunctions -> {"Log", "Log", None}, 
 ColorFunctionScaling -> True, 
 MeshFunctions -> Function @@@ {{{v, u}, v^3}}, Mesh -> 1, 
 PlotPoints -> 100, Ticks -> Automatic]

Tuy nhiên, vì MeshFunctions không cung cấp một ý tưởng có ý nghĩa về những gì dòng viết tắt. Có cách nào để chỉ định giá trị X để vẽ một đường trên bề mặt đó không? Cảm ơn!

Trả lời

2 MichaelE2 Sep 04 2020 at 05:30

Hai tọa độ đầu tiên truyền cho hàm lưới là Logcủa xvà ygiá trị. Đây là mã giải thích của tôi về mục đích của MeshFunctionsmã ví dụ của OP (với một giá trị khác cho đường lưới):

Plot3D[(y/(y/2 + 2*x)), {x, 1/10^10, 1/10^3}, {y, 0, 4.5/10^6}, 
 ScalingFunctions -> {"Log", "Log", None}, 
 ColorFunctionScaling -> True, 
 MeshFunctions -> {Function[{logx, logy, z}, Exp[logy]^3]}, 
 Mesh -> {{(5*^-7)^3}}, PlotPoints -> 100, Ticks -> Automatic]