WebGL rotating F: Difference between revisions
Content added Content deleted
m (→{{header|Phix}}: sp) |
(julia example) |
||
Line 11: | Line 11: | ||
;Optional extra |
;Optional extra |
||
Allow toggling between the F shape and a classic Utah teapot. |
Allow toggling between the F shape and a classic Utah teapot. |
||
=={{header|Julia}}== |
|||
Makie can use OpenGL as a backend for plotting (GLMakie). The code plots an 'F' as three rectangular solid-shaped scatter plots with overlapping markers, then rotates the resulting graph. |
|||
<lang julia>using Colors |
|||
using GeometryBasics: Rect3f |
|||
using GLMakie |
|||
topbar = vec([Point3f(i / 5, j / 5, k / 5) for i in 1:7, j in 8:3:28, k in 45:50]) |
|||
stem = vec([Point3f(i / 5, j / 5, k / 5) for i in 1:7, j in 1:7, k in 1:8:56]) |
|||
midbar = vec([Point3f(i / 5, j / 5, k / 5) for i in 1:7, j in 8:2:21, k in 25:29]) |
|||
fig = Figure(resolution = (800, 400)) |
|||
pos = fig[1, 1] |
|||
meshscatter(pos, topbar; marker = Rect3f(Vec3f(-0.5), Vec3f(16)), transparency = true, |
|||
color = [RGBA(positions[i]..., 0.5) for i in 1:length(positions)]) |
|||
meshscatter!(pos, stem; marker = Rect3f(Vec3f(-0.5), Vec3f(16)), transparency = true, |
|||
color = [RGBA(positions2[i]..., 0.5) for i in 1:length(positions2)]) |
|||
meshscatter!(pos, midbar; marker = Rect3f(Vec3f(-0.5), Vec3f(16)), transparency = true, |
|||
color = [RGBA(positions3[i]..., 0.5) for i in 1:length(positions3)]) |
|||
for _ in 1:28 |
|||
display(fig.scene) |
|||
rotate!(Accum, fig.scene, 0.25) |
|||
sleep(0.25) |
|||
end |
|||
</lang> |
|||
=={{header|Phix}}== |
=={{header|Phix}}== |