Oznaczanie powierzchni na Plot3D

Sep 04 2020

Czy istnieje sposób zaznaczenia określonej linii na wykresie Plot3D w skali logarytmicznej? Mój początkowy wątek to: `

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]

`Jeśli nie jest w skali logarytmicznej, wiem, że mogę użyć narzędzia ParametricPlot3D i funkcji Pokaż, aby nałożyć je na siebie. Ale kiedy wykreślę to w skali logarytmicznej, parametr ParametricPlot nie może wyświetlić się w skali logarytmicznej. Chciałbym mieć coś takiego:

    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]

`Jednakże, ponieważ MeshFunctions nie daje znaczącego pojęcia o tym, co oznacza ta linia. Czy istnieje sposób, aby po prostu określić wartość X, aby wykreślić linię na tej powierzchni? Dzięki!

Odpowiedzi

2 MichaelE2 Sep 04 2020 at 05:30

Pierwsze dwie współrzędne przekazywane do funkcji siatki są Logz xi ywartości. Oto kod mojej interpretacji intencji przykładowego MeshFunctionskodu PO (z inną wartością dla linii siatki):

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]