obj method line intersect {{factor 0.5}} { if {[$self cget -smooth]} then { lassign [my dots] a b c d set firstHalf [bezier segment [$self xy true] 0 $factor] set secondHalf [bezier segment [$self xy true] $factor 1] lassign $firstHalf - - x y $b configure -x $x -y $y lassign $firstHalf - - - - x y $c configure -x $x -y $y lassign $firstHalf - - - - - - x y set middle [new dot -x $x -y $y] $self remove $d $self add $middle # set newLine [new line $middle] lassign $secondHalf - - x y $newLine add [new dot -x $x -y $y] lassign $secondHalf - - - - x y $newLine add [new dot -x $x -y $y] $d } else { set firstDot [$self firstDot] set lastDot [$self lastDot] lassign [$self xy true] x0 y0 x1 y1 set xMid [expr {$x0 + ($x1 - $x0) * $factor}] set yMid [expr {$y0 + ($y1 - $y0) * $factor}] set midDot [new dot -x $xMid -y $yMid] $self remove all $self add $firstDot $midDot set newLine [new line $midDot $lastDot] } $newLine configure\ -width [$self cget -width]\ -outline [$self cget -outline]\ -fill [$self cget -fill]\ -smooth [$self cget -smooth]\ -constraint [$self cget -constraint] set newLine }
© Wolf-Dieter Busch | Home | Sitemap | Urheber | A-Z