Colorear líneas en función de coordenadas
Sep 08 2020
Quiero colorear líneas en función de coordenadas en 3D. Aquí está mi código. En este gráfico utilicé un color. Mi objetivo es utilizar una función de color basada en coordenadas 3D.
points = RandomReal[{0, 20}, {100, 3}]
graph = Graphics3D[{Hue[0.67, 0.6, 0.6], Line[points]},
PlotRange -> All, BoxRatios -> {1, 1, 1}, ImageSize -> 300]
Respuestas
1 kglr Sep 08 2020 at 04:03
Puede usar VertexColorspara colorear un segmento de línea mezclando los dos colores asociados con los dos vértices:
SeedRandom[1]
points = RandomReal[{0, 20}, {100, 3}];
Graphics3D[{Thick, Line[points, VertexColors -> (Hue @@@ Rescale[points])]},
PlotRange -> All, BoxRatios -> {1, 1, 1}, ImageSize -> 300]
Alternativamente, puede usar BSplineFunction+ ParametricPlot3Dcon una función de color que depende de los primeros 3 argumentos:
ParametricPlot3D[BSplineFunction[points, SplineDegree -> 1][t], {t, 0, 1},
ColorFunction -> (Hue[#, #2, #3] &), BoxRatios -> {1, 1, 1},
ImageSize -> 300]