drawing
TCL/TK UseCase1
Abstract : Used by both the Tcl code and the PP Group's C++ code to
           create objects and display them.
Comments : The names of the calls in here are the exact ones called in the
           C++. First the object structure is created, then it is displayed.
proc tclCEdge {SourceX SourceY DestX DestY} {
    set midx [expr ((($DestX - $SourceX) / 2 ) + $SourceX)]
    set midy [expr ((($DestY - $SourceY) / 2 ) + $SourceY)]
    puts "$SourceX $SourceY $DestX $DestY $midx $midy"
    set first [.area create line $SourceX $SourceY $midx $midy \
	    -arrow last -tags {arrow edge cedge} ]
    set second [.area create line $midx $midy $DestX $DestY \
	    -tags {finish edge cedge} ]
}
proc tclAEdge {SourceX SourceY DestX DestY} {
    set space 3
    set midx [expr ((($DestX - $SourceX) / 2 ) + $SourceX)]
    set midy [expr ((($DestY - $SourceY) / 2 ) + $SourceY)]
    if {[expr ($DestX - $SourceX)] != 0} {
	set slope [expr abs((($DestY - $SourceY) * 100) / ($DestX - $SourceX))]
	puts "$slope"
	if {[expr $slope] >= 100} {
	    set xspace $space
	    set yspace 0
	} else {
	    set xspace 0
	    set yspace $space
	}
    } else {
	set xspace 0
	set yspace $space
    }
#puts "$SourceX $SourceY $DestX $DestY $midx $midy"
    set first [.area create line [expr $SourceX - $xspace] \
	    [expr $SourceY - $yspace] [expr $midx - $xspace] \
	    [expr $midy - $yspace] \
            -arrow last -tags {arrow edge aedge} ]
    set second [.area create line [expr $midx - $xspace] \
	    [expr $midy - $yspace] [expr $DestX - $xspace] \
	    [expr $DestY - $yspace] \
            -tags {finish edge aedge} ]
    set first [.area create line [expr $SourceX + $xspace] \
            [expr $SourceY + $yspace] [expr $midx + $xspace] \
            [expr $midy + $yspace] \
            -arrow last -tags {arrow edge aedge} ]
    set second [.area create line [expr $midx + $xspace] \
            [expr $midy + $yspace] [expr $DestX + $xspace] \
            [expr $DestY + $yspace] \
            -tags {finish edge aedge} ]
}
proc tclCVert {labelName labelX labelY ShapeX ShapeY} {
global INCLUDE
    set new [.area create bitmap [expr $ShapeX] [expr $ShapeY] \
	    -bitmap "@$INCLUDE/constr.xbm" -tags {node connode}]
    set newlabel [.area create text [expr $labelX] [expr $labelY] \
	    -text $labelName -tags {label conlabel}]
}
proc tclAVert {labelName labelX labelY ShapeX ShapeY} {
global INCLUDE
    set new [.area create bitmap [expr $ShapeX] [expr $ShapeY] \
            -bitmap "@$INCLUDE/alter.xbm" -tags {node altnode}]
    set newlabel [.area create text [expr $labelX] [expr $labelY] \
            -text $labelName -tags {label altlabel}]
}
 
 
 
 
 
 
 
 
