Воодушевленный этим вопросом , смею задать что-то подобное.
Я пытаюсь нанести с помощью mathematica конус, который пересекается линией. Начальная точка линии находится на боковой поверхности конуса и его конечной точке внутри конуса.
Пока конечная точка линии находится далеко от вершины конуса, все выглядит довольно хорошо (используйте, например, endpointOfLine = 0.007 в моем примере). Но если конечная точка приближается к вершине (endpointOfLine <0,007 в моем примере), кажется, что большая часть линии будет на поверхности конуса.
Конечно, для значений конечных точек, которые очень близки к конусу конуса, линия почти параллельна поверхности, поэтому этот эффект, вероятно, должен появиться. Но эффект появляется и в том случае, если конечная точка не так близка к кончику конуса. </p>
Вот пример:
totalLength = 10^-2;(*length of the cone*)
theta = 17*10^-3;(*half opening angle of the cone*)
radius[theta_, l_] := Tan[theta]*l;(*radius of the cone as function of its length*)
endpointOfLine = 0.0015;(*endpoint of the test line, to be varied*)
testLine = Line[{{radius[theta, totalLength], 0, totalLength},{0, 0, endpointOfLine}},
VertexColors -> {Orange, Orange}
];
Graphics3D[
{
{
RevolutionPlot3D[{radius[theta, l], 0, l}, {l, 0, totalLength},
Mesh -> None,
PlotStyle -> Directive[Opacity[0.5], Gray],
PlotPoints -> 60][[1]]
},
{testLine}
},
Boxed -> True,BoxRatios -> {1, 1, 3},
Lighting -> None(*ugly, but makes the problem well visible*)
]
Есть ли способ уменьшить этот эффект? Увеличение PlotPoints до 60 немного уменьшило эффект, но я был бы рад, если бы мог уменьшить его больше. Есть идеи?