⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 spline

📁 Graphviz - Graph Drawing Programs from AT&T Research and Lucent Bell Labs See doc/build.html for
💻
字号:
#!/bin/sh# next line is a comment in tcl \exec wish "$0" ${1+"$@"}package require Tkspline######################################################################### splinetest.tcl - a test of spline rendering using the Tkspline extension## John Ellson - ellson@graphviz.org ######################################################################### create canvas and frame for toolbarpack [canvas .c -bg white -height 350] \    -side top -fill both -expand truepack [frame .f] -side top -fill xproc nextpoint {c wx wy} {    global id oldx oldy    if {[info exists id]} {        unset id    } {        set id [$c find withtag current]        if {[string length $id] == 0} {            # not a Point            unset id        } {            # $id != {} so must be a Point because everything else is disabled            set oldx [$c canvasx $wx]            set oldy [$c canvasy $wy]        }    }}proc motion {c wx wy} {    global id oldx oldy    set x [$c canvasx $wx]    set y [$c canvasy $wy]    if [info exists id] {        foreach {items idx} [$c gettags $id] {break}        # update single coord in three variants of shape        foreach itm [split $items .] {               $c dchars $itm $idx               $c insert $itm $idx [list $x $y]        }        # move control point        $c move $id [expr $x - $oldx] [expr $y - $oldy]    }    set oldx $x    set oldy $y}# itemwithcontrolpoints - create a "line" or "polygon" with#    straight + spline + smooth  line variants and draggable #    control points.## c = canvas handle# item = "line" | "polygon"# coords = x y x y ... list of control point locations#proc itemwithcontrolpoints {c item coords} {    if {[string equal $item "line"]} {        set opts {}    } {        set opts {-fill {} -outline black}    }    set lid [eval $c create $item $coords $opts \        -state disabled -tag Line]    set slid [eval $c create $item $coords $opts \        -smooth true -state disabled -tag Smooth]    set bzlid [eval $c create $item $coords $opts \        -smooth spline -state disabled -tag Spline]    set idx 0    foreach {x y} $coords {        set id [$c create oval -2 -2 2 2 \            -fill yellow -outline black \            -tags [list $lid.$slid.$bzlid $idx Point]]        $c move $id $x $y         incr idx 2    }}    # show objects by type (from toolbar buttons)proc show {typ show} {    if {$show} {        if {[string equal $typ "Point"]} {            .c itemconfigure $typ -state normal        } {            .c itemconfigure $typ -state disabled        }    } {        .c itemconfigure $typ -state hidden    }}proc print {} {    global tcl_platform    if {[string equal $tcl_platform(platform) "windows"]} {        # platform == "windows"        if {[catch {package require Printer}]         && [catch {package require printer}]} {            # Can't do this--no printer package            puts stderr "No \"Printer\" package found"        } {            # Ask the user to select a printer            set hdc [ printer dialog select ]            # Now send raw postscript output to the device            printer send -hdc $hdc -postscript \                -data [.c postscript]        }    } {        # platform != "windows" ... then probably unix        set chan [open "| lpr" w]        .c postscript -channel $chan        close $chan    }}# populate toolbarforeach typ {Exit Print} {    set cmd [string tolower $typ]    pack [button .f.$cmd \        -text $typ -width 6 -command $cmd \        -padx 0 -pady 0 -width 6] \            -side right}foreach typ {Line Smooth Spline Point} {    pack [checkbutton .f.[string tolower $typ] \        -text $typ -variable var$typ -width 6 \        -selectcolor yellow -command "show $typ \$var$typ" \        -indicatoron false] \            -side left -fill both    set var$typ 1}# mouse bindings on canvas objectsbind .c <1> "nextpoint .c %x %y"bind .c <Motion> "motion .c %x %y"# populate with demo objectsitemwithcontrolpoints .c line \    {50 50 50 100 100 100 100 50 100 20 150 20 150 50}itemwithcontrolpoints .c polygon \    {50 200 100 150 150 200 150 250 100 300 50 250}set help [.c create text 10 125 \    -anchor w \    -text "You can drag the points\nwith mouse button 1"]after 5000 {.c delete $help}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -