Marcando a superfície em Plot3D

Sep 04 2020

Existe alguma maneira de marcar uma linha específica no gráfico Plot3D na escala Log. Meu enredo inicial é: `

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]

`Se não estiver na escala Log, sei que posso usar ParametricPlot3D e mostrar para sobrepô-los. Mas uma vez que eu ploto na escala Log, ParametricPlot não pode ser mostrado na escala Log. O que eu gostaria de ter é algo assim:

    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]

`No entanto, uma vez que MeshFunctions não dá uma ideia significativa do que a linha representa. Existe uma maneira de apenas especificar o valor de X para traçar uma linha nessa superfície? Obrigado!

Respostas

2 MichaelE2 Sep 04 2020 at 05:30

As duas primeiras coordenadas passadas para as funções de malha são os Logdos valores xe y. Aqui está o código para minha interpretação da intenção do MeshFunctionscódigo de exemplo do OP (com um valor diferente para a linha de malha):

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]