在this question的鼓励下,我敢问类似的事情。
我试图用mathematica绘制一个与一条线相交的圆锥体。线的起点位于锥体的侧表面上,其终点位于锥体内部。 只要线的端点远离锥的尖端,一切看起来都很好(在我的例子中使用例如endpointOfLine = 0.007)。但是如果端点接近尖端(在我的例子中,endpointOfLine <0.007),那么线的很大一部分似乎都在锥体的表面上。 当然,对于非常接近锥形尖端的端点值,该线几乎与表面平行,因此可能会出现这种效应。但是如果端点不太靠近锥尖,效果也会出现。
这里的例子是:
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可以减少一点效果,但如果我能减少它,我会很高兴。有什么想法吗?
答案 0 :(得分:1)
尝试将端点放置在锥体底部但不在半径上,如:
testLine =
Line[{{0.97 radius[theta, totalLength], 0, totalLength}, {0, 0, endpointOfLine}},
VertexColors -> {Orange, Orange}
];
我觉得这不是一个与你所指的问题根本不同的问题。