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

📄 coverage.tcl

📁 卫星仿真软件 卫星仿真软件 卫星仿真软件
💻 TCL
📖 第 1 页 / 共 2 页
字号:
#########################################################  SaVi by Robert Thurman (thurman@geom.umn.edu) and#          Patrick Worfolk (worfolk@alum.mit.edu).##  Copyright (c) 1997 by The Geometry Center.#  This file is part of SaVi.  SaVi is free software;#  you can redistribute it and/or modify it only under#  the terms given in the file COPYRIGHT which you should#  have received along with this file.  SaVi may be#  obtained from:#  http://savi.sourceforge.net/#  http://www.geom.uiuc.edu/locate/SaVi######################################################### coverage.tcl## $Id: coverage.tcl,v 1.51 2005/02/12 16:25:48 lloydwood Exp $# Note: IM_W and IM_H are linked to C variables for the image sizeproc coverage(build) {} {    global FONT COLOR COLDIV COLDEC coverage_flag no_access_flag tracks_flag \	coverage_proj_flag coverage_angle_flag project_tracks_flag map_flag \	coverage_projection coverage_angle IM_W IM_H im_x_offset im_y_offset \	coverage_flag_dismissed tracks_flag_dismissed no_access_flag_dismissed \	coverage_display_center_longitude coverage_name use_X geomview_module    if [winfo exists .coverage] {	wm deiconify .coverage	raise .coverage	return    }    set coverage_name [build_Toplevel coverage]    wm protocol $coverage_name WM_DELETE_WINDOW coverage(dismiss)    coverage(title)    build_Menubar $coverage_name mbar \	{"Help" \             {"about SaVi..." "about(build)"} } \	{"File" \	     {"Load satellites..." "load(build)"} \	     {"Save satellites as Tcl script..." "save(build)"} \	     {} \	     {"Save map..." "coverage(save_map)"} \	     {} \	     {"Load color shades..." "coverage(load_colors)"} \	     {"Save color shades..." "coverage(save_colors)"} \	     {} \	     {"Close" "coverage(dismiss)"} } \	{"Shading" \	     {"Change shading" "coverage(run_of_colors)"} \	     {} \             {"Select random colors" "coverage(random_colors)"} \	     {"Shade between end colors" "coverage(blend_colors)"} \	     {} \	     {"SaVi color shades" "coverage(restore_colors)"} } \	{"Views" \	     {"Satellite list..." "window(raise) main"} \	     {} \	     {"> Step forwards" "main(forw_step)"} \	     {"< Step back" "main(back_step)"} \	     {">> Forwards..." "main(forwards)"} \	     {"<< Reverse..." "main(backwards)"} \	     {"Freeze views" "main(stop)"} \	     {} \	     {"Refresh coverage view" "coverage(foot)"} \	     {} \	     {"Restart views at time zero" "main(restart)"} } \	{"Constellations"} \	{"Rastering"} \	{"Rendering"}    main(constellations_menu) $coverage_name.mbar.b3    build_options_menu $coverage_name.mbar.b4 \	{"Show Earth map" map_flag} \	{} \	{"Show coverage" coverage_flag} \	{"Add interval decay" no_access_flag} \	{} \	{"Show satellites" tracks_flag} \	{"Record ground tracks" project_tracks_flag}    if {$geomview_module == 1} {	build_options_menu $coverage_name.mbar.b5 \	    {"Real-time mode" realtime_flag} \	    {} \	    {"Show central body" earth_flag} \	    {"Use detailed Earth model" fancy_earth_flag} \	    {} \	    {"Texturemapping" texture_flag} \	    {"Send cylindrical map to Geomview" geomview_dynamic_texture_flag}    } else {	build_options_menu $coverage_name.mbar.b5 \	    {"Real-time mode" realtime_flag}    }    set cmd [build_CmdFrame $coverage_name cmd]    set c "$cmd.c"    # canvas counts from 0    canvas $c -bg $COLOR(bg) -width $IM_W -height $IM_H    pack $c -fill x -side top    if {$coverage_display_center_longitude < 0} {	set offset_longitude [expr $coverage_display_center_longitude + 360]    } else {	set offset_longitude $coverage_display_center_longitude    }    set im_x_offset [expr 2 + ($offset_longitude * -$IM_W/360)]    set im_y_offset 2    set im [image create photo im_coverage -width [expr $IM_W*2] -height $IM_H]    $c create image [expr $IM_W + $im_x_offset] [expr $IM_H/2 + $im_y_offset] \	-image $im    # catch button click in map to get fisheye Lat/Long    bind $c <Button-1> {coverage(lat_long) %x %y}    set cmdq [build_StdFrame $cmd q]    build_Optionslist $cmdq olist \	{"Show Earth map" map_flag}    pack $cmdq.olist -side left    build_IPopupMenu $cmdq p0 "projected as:" \        coverage_projection coverage(map) {"cylindrical" "unprojected" "sinusoidal"}    pack $cmdq.p0 -side left    build_LabelEntryColumns $cmdq p1 \	{text "" {"Last loaded:"}} \	{label "" {last_filename}}    pack $cmdq.p1 -side left    pack $cmdq -anchor w    set cmda [build_StdFrame $cmd a]    build_Optionslist $cmda olist \	{"Show coverage" coverage_flag} \	{"Add interval decay" no_access_flag} \	{"Show satellites" tracks_flag}# this will give a numerical idea of coverage by latitude#       {"Print access data" print_access_flag}# this is hacked into utils.tcl instead.#	{"Record ground tracks    and project forwards" project_tracks_flag}    pack $cmda.olist -side left    coverage(init_colors)    build_StdFrame $cmda ce    # the background colors should match the colors in coverage_vis.c    build_StdFrame $cmda.ce cf    label $cmda.ce.cf.0 -text "diversity of coverage now:" \	    -font $FONT(label)    button $cmda.ce.cf.1 -text "1" -font $FONT(fixed) -bg $COLDIV(1) \	    -activebackground $COLDIV(1) -command "coverage(diversitycolor) 1" \	    -relief groove    button $cmda.ce.cf.2 -text "2" -font $FONT(fixed) -bg $COLDIV(2) \	    -activebackground $COLDIV(2) -command "coverage(diversitycolor) 2" \	    -relief groove    button $cmda.ce.cf.3 -text "3" -font $FONT(fixed) -bg $COLDIV(3) \	    -activebackground $COLDIV(3) -command "coverage(diversitycolor) 3" \	    -relief groove    button $cmda.ce.cf.4 -text "4+" -font $FONT(fixed) -bg $COLDIV(4) \	    -activebackground $COLDIV(4) -command "coverage(diversitycolor) 4" \	    -relief groove    label $cmda.ce.cf.5 -text "satellites" -font $FONT(label)    pack $cmda.ce.cf.0 $cmda.ce.cf.1 $cmda.ce.cf.2 $cmda.ce.cf.3 $cmda.ce.cf.4 \         $cmda.ce.cf.5 -expand 1 -fill x -side left -ipadx 2m -ipady 2m \	 -padx 1m -pady 1m    pack $cmda.ce.cf -side top    build_StdFrame $cmda.ce cg    label $cmda.ce.cg.0 -text "age of decayed coverage:" -font $FONT(label)    button $cmda.ce.cg.1 -text "1" -font $FONT(fixed) -bg $COLDEC(1) \	    -activebackground $COLDEC(1) -command "coverage(decaycolor) 1" \	    -relief groove    button $cmda.ce.cg.2 -text "2" -font $FONT(fixed) -bg $COLDEC(2) \	    -activebackground $COLDEC(2) -command "coverage(decaycolor) 2" \	    -relief groove    button $cmda.ce.cg.3 -text "3" -font $FONT(fixed) -bg $COLDEC(3) \	    -activebackground $COLDEC(3) -command "coverage(decaycolor) 3" \	    -relief groove    button $cmda.ce.cg.4 -text "4+" -font $FONT(fixed) -bg $COLDEC(4) \	    -activebackground $COLDEC(4) -command "coverage(decaycolor) 4" \	    -relief groove    label $cmda.ce.cg.5 -text "intervals" -font $FONT(label)    pack $cmda.ce.cg.0 $cmda.ce.cg.1 $cmda.ce.cg.2 $cmda.ce.cg.3 $cmda.ce.cg.4 \         $cmda.ce.cg.5 -expand 1 -fill x -side left -ipadx 2m -ipady 2m \	 -padx 1m -pady 1m    pack $cmda.ce.cg -side top    pack $cmda.ce -side right -fill both    pack $cmda -fill both    build_LabelEntryColumns $cmd le2 \	{lcheckbox "" project_tracks_flag} \	{ientry "" {tracks_interval}} \	{text "" {hours}}    build_IPopupMenu $cmd p2 "Coverage angle describes:" \	coverage_angle_flag coverage(foot) {"ground terminal mask elevation" "cones from satellites"}    pack $cmd.p2 -fill both -expand 1    set cmdb [build_StdFrame $cmd b]    button $cmdb.b1 -font $FONT(button)    $cmdb.b1 configure -text "Set angle:" \		-command "coverage(foot)"    pack $cmdb.b1 -side left    build_LabelEntryColumns $cmdb le1 \	{dentry "" {coverage_angle}} \	{label "" {coverage}} \	{label "" {mean_coverage}}    pack $cmdb.le1    pack $cmdb -fill both -expand 1    set cmdd [build_StdFrame $cmd d]    build_LabelEntryColumns $cmdd le0 \	{label "" {coverage_init_time}} \	{label "" {coverage_time}} \	{text "" "Time:"} \	{label "" {time}}    pack $cmdd.le0 -side left    pack $cmdd -fill both -expand 1    pack $cmd -fill both -side top -expand 1    build_Buttonbar $coverage_name bb1 \        {"Restart" coverage(restart)} \        {"  <  " coverage(back_step)} \        {"  >  " coverage(forw_step)} \        {"  STOP  " coverage(stop)} \        {"   < <   " coverage(backwards)} \        {"   > >   " coverage(forwards)}    set coverage_flag $coverage_flag_dismissed    set tracks_flag $tracks_flag_dismissed    coverage(update)}proc coverage(forw_step) {} {    main(forw_step)}proc coverage(back_step) {} {    main(back_step)}proc coverage(forwards) {} {    global COLOR playbar    if {([winfo exists .coverage])} {	.coverage.bb1.b3 configure -bg $COLOR(bg)	.coverage.bb1.b4 configure -bg $COLOR(bg)	.coverage.bb1.b5 configure -bg $COLOR(sbg)    }    set flag $playbar    set playbar 1    if {$flag == 0} {	main(forwards)    }    set playbar 0}proc coverage(backwards) {} {    global COLOR playbar    if {([winfo exists .coverage])} {	.coverage.bb1.b3 configure -bg $COLOR(bg)	.coverage.bb1.b4 configure -bg $COLOR(sbg)	.coverage.bb1.b5 configure -bg $COLOR(bg)    }    set flag $playbar    set playbar 1    if {$flag == 0} {	main(backwards)    }    set playbar 0}proc coverage(stop) {} {    global COLOR playbar    if {([winfo exists .coverage])} { 	.coverage.bb1.b3 configure -bg $COLOR(sbg)	.coverage.bb1.b4 configure -bg $COLOR(bg)	.coverage.bb1.b5 configure -bg $COLOR(bg)    }    set flag $playbar    set playbar 1    if {$flag == 0} {	main(stop)    }    set playbar 0}proc coverage(restart) {} {    coverage(stop)    satellites RESET}proc coverage(init_colors) {} {    global COLDIV COLDEC NUMCOLORS    global DIV0 DIV1 DIV2 DIV3 DIV4    global DEC0 DEC1 DEC2 DEC3 DEC4    set NUMCOLORS 4    # set diversity colors to shades of yellow    # strings    set COLDIV(0) #ffffff    set COLDIV(1) #ffff00    set COLDIV(2) #ffaa00    set COLDIV(3) #ff5500    set COLDIV(4) #ff0000    # ints    set DIV0 [expr 0xffffff]    set DIV1 [expr 0xffff00]    set DIV2 [expr 0xffaa00]    set DIV3 [expr 0xff5500]    set DIV4 [expr 0xff0000]    # set decay colors to shades of blue    #strings    set COLDEC(0) #ffffff    set COLDEC(1) #0000ff    set COLDEC(2) #0000d9    set COLDEC(3) #0000b4    set COLDEC(4) #00008f    #ints    set DEC0 [expr 0xffffff]    set DEC1 [expr 0x0000ff]    set DEC2 [expr 0x0000d9]    set DEC3 [expr 0x0000b4]    set DEC4 [expr 0x00008f]}proc coverage(update_colors) {} {global DIV1 DIV2 DIV3 DIV4 DEC1 DEC2 DEC3 DEC4 COLDIV COLDEC    for {set i 1} {$i < 5} {incr i} {        set name DIV$i	set COLDIV($i) [eval format "#%06x" $$name]	.coverage.cmd.a.ce.cf.$i configure -bg $COLDIV($i) \	  -activebackground $COLDIV($i)	set name DEC$i	set COLDEC($i) [eval format "#%06x" $$name]	.coverage.cmd.a.ce.cg.$i configure -bg $COLDEC($i) \	  -activebackground $COLDEC($i)    }    satellites COLOR_UPDATE    coverage(update)}proc coverage(random_colors) {} {    global DIV1 DIV2 DIV3 DIV4 DEC1 DEC2 DEC3 DEC4

⌨️ 快捷键说明

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