Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add plane keyword arguments for plotting recipes #374

Merged
merged 5 commits into from
Feb 5, 2024

Conversation

hyrodium
Copy link
Owner

@hyrodium hyrodium commented Feb 5, 2024

using BasicBSpline
using Plots
plotly()

# Define shape
k1 = KnotVector([0.0, 1.5, 2.5, 5.5, 8.0, 9.0, 9.5, 10.0])
k2 = knotvector"31 2  121"
P1 = BSplineSpace{3}(k1)
P2 = BSplineSpace{2}(k2)

# Choose indices
i1 = 3
i2 = 4

# Visualize basis functions
plot(P1; plane=:xz, label="P1", color=:red)
plot!(P2; plane=:yz, label="P2", color=:green)
plot!(k1; plane=:xz, label="k1", color=:red, markersize=2)
plot!(k2; plane=:yz, label="k2", color=:green, markersize=2)
xs = range(0,10,length=100)
ys = range(1,9,length=100)
surface!(xs, ys, bsplinebasis.(P1,i1,xs') .* bsplinebasis.(P2,i2,ys))
Peek.2024-02-05.18-21.mp4

@hyrodium
Copy link
Owner Author

hyrodium commented Feb 5, 2024

Other improvements:

using BasicBSpline
using Plots
gr()

k1 = KnotVector([0.0, 1.5, 2.5, 5.5, 8.0, 9.0, 9.5, 10.0])
P1 = BSplineSpace{3}(k1)
P2 = expandspace_R(P1, KnotVector([2.0, 3.0, 5.5]))
plot(P1, label="P1", color=:red)
plot!(P2, label="P2", color=:green)
plot!(knotvector(P1), label="k1", gap_y=0.01, color=:red)
plot!(knotvector(P2); label="k2", gap_y=0.01, shift_y=-0.03, color=:green)

image

@hyrodium
Copy link
Owner Author

hyrodium commented Feb 5, 2024

The CI failure is because of the segfault from GR.jl.

julia> using Plots, BasicBSpline, StaticArrays, Test

julia> include("/home/hyrodium/.julia/dev/BasicBSpline/test/test_Plots.jl")

[853330] signal (11.1): Segmentation fault
in expression starting at /home/hyrodium/.julia/dev/BasicBSpline/test/test_Plots.jl:1
draw_mesh_softwarerendered.constprop.0.isra.0 at /home/hyrodium/.julia/artifacts/7f59a0ec3d19c98dce30a3ba8ea9cbd8824ce4a6/lib/libGR3.so (unknown line)
gr3_getpixmap_softwarerendered at /home/hyrodium/.julia/artifacts/7f59a0ec3d19c98dce30a3ba8ea9cbd8824ce4a6/lib/libGR3.so (unknown line)
gr3_getimage at /home/hyrodium/.julia/artifacts/7f59a0ec3d19c98dce30a3ba8ea9cbd8824ce4a6/lib/libGR3.so (unknown line)
gr3_drawimage_gks_ at /home/hyrodium/.julia/artifacts/7f59a0ec3d19c98dce30a3ba8ea9cbd8824ce4a6/lib/libGR3.so (unknown line)
gr3_drawimage_grlike at /home/hyrodium/.julia/artifacts/7f59a0ec3d19c98dce30a3ba8ea9cbd8824ce4a6/lib/libGR3.so (unknown line)
gr3_surface at /home/hyrodium/.julia/artifacts/7f59a0ec3d19c98dce30a3ba8ea9cbd8824ce4a6/lib/libGR3.so (unknown line)
surface at /home/hyrodium/.julia/packages/GR/yBe3g/src/gr3.jl:362
gr_draw_surface at /home/hyrodium/.julia/packages/Plots/sxUvK/src/backends/gr.jl:1913
unknown function (ip: 0x7f1be717a488)
_jl_invoke at /cache/build/builder-amdci4-6/julialang/julia-release-1-dot-10/src/gf.c:2894 [inlined]
ijl_apply_generic at /cache/build/builder-amdci4-6/julialang/julia-release-1-dot-10/src/gf.c:3076
gr_add_series at /home/hyrodium/.julia/packages/Plots/sxUvK/src/backends/gr.jl:1757
gr_display at /home/hyrodium/.julia/packages/Plots/sxUvK/src/backends/gr.jl:964
#506 at /home/hyrodium/.julia/packages/Plots/sxUvK/src/backends/gr.jl:688
jfptr_YY.506_54060 at /home/hyrodium/.julia/compiled/v1.10/Plots/ld3vC_X5tjI.so (unknown line)
_jl_invoke at /cache/build/builder-amdci4-6/julialang/julia-release-1-dot-10/src/gf.c:2894 [inlined]
ijl_apply_generic at /cache/build/builder-amdci4-6/julialang/julia-release-1-dot-10/src/gf.c:3076
foreach at ./abstractarray.jl:3094
jfptr_foreach_62537 at /home/hyrodium/.julia/compiled/v1.10/Plots/ld3vC_X5tjI.so (unknown line)
_jl_invoke at /cache/build/builder-amdci4-6/julialang/julia-release-1-dot-10/src/gf.c:2894 [inlined]
ijl_apply_generic at /cache/build/builder-amdci4-6/julialang/julia-release-1-dot-10/src/gf.c:3076
gr_display at /home/hyrodium/.julia/packages/Plots/sxUvK/src/backends/gr.jl:688
#547 at /home/hyrodium/.julia/packages/Plots/sxUvK/src/backends/gr.jl:2062 [inlined]
withenv at ./env.jl:256
_jl_invoke at /cache/build/builder-amdci4-6/julialang/julia-release-1-dot-10/src/gf.c:2894 [inlined]
ijl_apply_generic at /cache/build/builder-amdci4-6/julialang/julia-release-1-dot-10/src/gf.c:3076
_show at /home/hyrodium/.julia/packages/Plots/sxUvK/src/backends/gr.jl:2057
_jl_invoke at /cache/build/builder-amdci4-6/julialang/julia-release-1-dot-10/src/gf.c:2894 [inlined]
ijl_apply_generic at /cache/build/builder-amdci4-6/julialang/julia-release-1-dot-10/src/gf.c:3076
jl_apply at /cache/build/builder-amdci4-6/julialang/julia-release-1-dot-10/src/julia.h:1982 [inlined]
jl_f__call_latest at /cache/build/builder-amdci4-6/julialang/julia-release-1-dot-10/src/builtins.c:812
#invokelatest#2 at ./essentials.jl:887 [inlined]
invokelatest at ./essentials.jl:884 [inlined]
show at /home/hyrodium/.julia/packages/Plots/sxUvK/src/output.jl:232 [inlined]
#344 at /home/hyrodium/.julia/packages/Plots/sxUvK/src/output.jl:6 [inlined]
#open#424 at ./io.jl:396
open at ./io.jl:393 [inlined]
png at /home/hyrodium/.julia/packages/Plots/sxUvK/src/output.jl:6
jfptr_png_53589 at /home/hyrodium/.julia/compiled/v1.10/Plots/ld3vC_X5tjI.so (unknown line)
_jl_invoke at /cache/build/builder-amdci4-6/julialang/julia-release-1-dot-10/src/gf.c:2894 [inlined]
ijl_apply_generic at /cache/build/builder-amdci4-6/julialang/julia-release-1-dot-10/src/gf.c:3076
savefig at /home/hyrodium/.julia/packages/Plots/sxUvK/src/output.jl:149
jfptr_savefig_53616 at /home/hyrodium/.julia/compiled/v1.10/Plots/ld3vC_X5tjI.so (unknown line)
_jl_invoke at /cache/build/builder-amdci4-6/julialang/julia-release-1-dot-10/src/gf.c:2894 [inlined]
ijl_apply_generic at /cache/build/builder-amdci4-6/julialang/julia-release-1-dot-10/src/gf.c:3076
jl_apply at /cache/build/builder-amdci4-6/julialang/julia-release-1-dot-10/src/julia.h:1982 [inlined]
do_call at /cache/build/builder-amdci4-6/julialang/julia-release-1-dot-10/src/interpreter.c:126
eval_value at /cache/build/builder-amdci4-6/julialang/julia-release-1-dot-10/src/interpreter.c:223
eval_stmt_value at /cache/build/builder-amdci4-6/julialang/julia-release-1-dot-10/src/interpreter.c:174 [inlined]
eval_body at /cache/build/builder-amdci4-6/julialang/julia-release-1-dot-10/src/interpreter.c:617
eval_body at /cache/build/builder-amdci4-6/julialang/julia-release-1-dot-10/src/interpreter.c:544
eval_body at /cache/build/builder-amdci4-6/julialang/julia-release-1-dot-10/src/interpreter.c:544
eval_body at /cache/build/builder-amdci4-6/julialang/julia-release-1-dot-10/src/interpreter.c:544
eval_body at /cache/build/builder-amdci4-6/julialang/julia-release-1-dot-10/src/interpreter.c:544
jl_interpret_toplevel_thunk at /cache/build/builder-amdci4-6/julialang/julia-release-1-dot-10/src/interpreter.c:775
jl_toplevel_eval_flex at /cache/build/builder-amdci4-6/julialang/julia-release-1-dot-10/src/toplevel.c:934
jl_toplevel_eval_flex at /cache/build/builder-amdci4-6/julialang/julia-release-1-dot-10/src/toplevel.c:877
ijl_toplevel_eval_in at /cache/build/builder-amdci4-6/julialang/julia-release-1-dot-10/src/toplevel.c:985
malloc(): corrupted top size

[853330] signal (6.-6): Aborted
in expression starting at /home/hyrodium/.julia/dev/BasicBSpline/test/test_Plots.jl:1

@hyrodium
Copy link
Owner Author

hyrodium commented Feb 5, 2024

Perhaps jheinen/GR.jl#480 is related?

@hyrodium hyrodium merged commit 7e1b436 into main Feb 5, 2024
11 of 12 checks passed
@hyrodium hyrodium deleted the feature/more_plot_recipes branch February 6, 2024 03:49
@hyrodium hyrodium changed the title Add plane keywork arguments for plotting recipes Add plane keyword arguments for plotting recipes Feb 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant