[http://mini.net/files/convexhull.jpg] From a posting in [the comp.lang.tcl newsgroup]: > 1. DOn't suppose anyone has a convex hull procedure in TCL that they could > share? > > 2. Don't suppose anyone wants three versions of a convex hull procedure that > doesn't work? [Arjen Markus] replies: > I do not have any procedures to share (working or none), but have you > checked a repository like ? They may have a > working version for you in, say, C or Fortran: > - Steal^H^H^H^H^HExamine the code and re-implement in Tcl > - Make a small extension that directly uses the code > And above all: if you do the first, put it on the Wiki :) [KBK] (5 November 2002) - Arjen, your wish is my command! The ''convex hull'' of a set of points in two dimensions is the smallest convex polygon that encloses the points. In spaces of higher dimension, it is the smallest convex polytope that encloses the points. Finding the convex hull in two dimensions is fairly easy using Graham's algorithm (any good undergrad text on algorithms or computational geometry will give it). Essentially, what one does is: 1. (Optional) Pre-scan the points to find a set that can be trivially excluded from the hull. This is usually done by finding the points that give the minimum and maximum values of ''x+y'' and ''x-y'', and excluding either the interior of that quadrilateral or (faster and almost as effective) the interior of the largest rectangle with sides parallel to the axes that is enclosed by the quadrilateral. 1. Locate the point ''p'' with minimum y. Sort the remaining points ''q'' by the slope of the line joining ''p'' and ''q'' so that they are in counterclockwise sequence. 1. Walk the counterclockwise sequence of points. When adding a point to the hull, walk backward through the points added earlier and remove any that are now interior points. Finding the convex hull in spaces of dimension greater than two is more of a challenge. What I've done on the occasions that I've needed such a calculation is simply to write the point list to a file, execute the '''qconvex''' program from the '''qhull''' library [http://www.qhull.org/] on it, and read in the results. Since '''qhull''' is also available as a C-callable function library, it would be possible to wrap it into Tcl directly, but I've never had an application that was performance-critical enough to bother. Without further ado, here is the code for the Graham scan in two dimensions. Note the calls to the [[illustrate]] function; in Tcl 8.4 and beyond, the function as supplied generates ''no'' bytecode and has ''zero'' cost of evaluation. The [[illustrate]] function can be redefined (see below) to show the progress of the algorithm. ---- # Procedures for developing the convex hull of a set of points in # two dimensions. # Copyright (c) 2002 by Kevin B. Kenny. All rights reserved. # See the file, # 'http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/tcllib/tcllib/license.terms' # for terms and conditions of redistribution package require Tcl 8.4; # This code uses [lset] # illustrate -- # # Illustrate the behavior of the convex hull algorithm. # # The default illustration does nothing. proc illustrate args {} # ccw -- # # Determines the direction of turn when going from a first point # through a second to a third. # # Parameters: # p0, p1, p2 -- Three points, in order on the path. Each point is # a two-element list comprising abscissa and ordinate. # Additional list elements are ignored. # # Results: # Returns 1 if the path p0-p1-p2 proceeds in a counterclockwise # direction, -1 if it is clockwise, 0 if it is neither. proc ccw { p0 p1 p2 } { foreach { x0 y0 } $p0 break foreach { x1 y1 } $p1 break foreach { x2 y2 } $p2 break set dx1 [expr { $x1 - $x0 }] set dy1 [expr { $y1 - $y0 }] set dx2 [expr { $x2 - $x0 }] set dy2 [expr { $y2 - $y0 }] set prod1 [expr { $dx1 * $dy2 }] set prod2 [expr { $dy1 * $dx2 }] if { $prod1 > $prod2 } { return 1 } if { $prod1 < $prod2 } { return -1 } if { $dx1*$dx2 < 0 || $dy1*$dy2 < 0 } { return -1 } if { $dx1*$dx1 + $dy1*$dy1 < $dx2*$dx2 + $dy2*$dy2 } { return 1 } return 0 } # hull2d -- # # Computes the convex hull of a set of points in two dimensions. # # Parameters: # points - List of points for which the hull is to be determined. # Each point is a 2-element list comprising abscissa and # ordinate. # # Results: # Returns the convex hull. proc hull2d { points } { # Rule out the trivial cases if { [llength $points] < 3 } { return $points } illustrate { plotPoints $points } # Find the points having the largest and smallest values of x+y, # largest and smallest values of x-y, and smallest value of y. # Break ties on "value of y" by choosing the point with the smallest x. set p0 [lindex $points 0] foreach { x0 y0 } $p0 break set minxpy [expr { $x0 + $y0 }]; set xminxpy $x0; set yminxpy $y0 set maxxpy [expr { $x0 + $y0 }]; set xmaxxpy $x0; set ymaxxpy $y0 set minxmy [expr { $x0 - $y0 }]; set xminxmy $x0; set yminxmy $y0 set maxxmy [expr { $x0 - $y0 }]; set xmaxxmy $x0; set ymaxxmy $y0 set miny $y0; set iminy 0; set xminy $x0 set n 0 foreach p $points { foreach { x y } $p break if { $y < $miny || ( $y == $miny && $x < $xminy ) } { set miny $y; set iminy $n; set xminy $x } set xpy [expr { $x + $y }] if { $xpy < $minxpy } { set minxpy $xpy; set xminxpy $x; set yminxpy $y } if { $xpy > $maxxpy } { set maxxpy $xpy; set xmaxxpy $x; set ymaxxpy $y } set xmy [expr { $x - $y }] if { $xmy < $minxmy } { set minxmy $xmy; set xminxmy $x; set yminxmy $y } if { $xmy > $maxxmy } { set maxxmy $xmy; set xmaxxmy $x; set ymaxxmy $y } incr n } illustrate { corner $xminxpy $yminxpy min(x+y) } illustrate { corner $xmaxxpy $ymaxxpy max(x+y) } illustrate { corner $xminxmy $yminxmy min(x-y) } illustrate { corner $xmaxxmy $ymaxxmy max(x-y) } illustrate { corner $xminy $miny min(y) } # Determine bounds on x and y that define a rectangle in whose interior # no point can be on the hull. if { $xmaxxpy > $xmaxxmy } { set xmaxint $xmaxxmy } else { set xmaxint $xmaxxpy } if { $ymaxxpy > $yminxmy } { set ymaxint $yminxmy } else { set ymaxint $ymaxxpy } if { $xminxpy > $xminxmy } { set xminint $xminxpy } else { set xminint $xminxmy } if { $yminxpy > $ymaxxmy } { set yminint $yminxpy } else { set yminint $ymaxxmy } illustrate { rectangle $xminint $yminint $xmaxint $ymaxint } # For all points outside the "interior rectangle", compute the angle of # the ray joining $xminy,$miny to $x,$y. List the points, excluding # $xminy, $miny itself, sorted by this angle. (This list is a simple # closed curve comprising all the points on the hull plus a few interior # points). set n 0 foreach p $points { foreach { x y } $p break if { $n != $iminy && ( $x <= $xminint || $x >= $xmaxint || $y <= $yminint || $y >= $ymaxint ) } { lappend pts2 [linsert $p 0 [expr { atan2( $y-$miny, $x-$xminy ) }]] } incr n } set pts3 [list [list $xminy $miny]] foreach p [lsort -real -index 0 $pts2] { foreach { - x y } $p break lappend pts3 [list $x $y] } lappend pts3 [list $xminy $miny] # Eliminate interior points from the hull under construction set i 0 set M 2 ; set Mm1 1 foreach pi $pts3 { if { $i < 3 } { incr i ; continue } while { [ccw [lindex $pts3 $M] [lindex $pts3 $Mm1] $pi] >= 0 } { incr M -1 incr Mm1 -1 } incr M incr Mm1 set temp [lindex $pts3 $M] lset pts3 $i $temp lset pts3 $M $pi set pu $temp set partial [lrange $pts3 0 $M] lappend partial [list $xminy $miny] illustrate { polyline partial $partial -fill blue } incr i } return [lrange $pts3 1 $M] } # To see the algorithm in operation, include the following code, and the convex hull will be found for a typical set of 32 points. The progress of the algorithm will be displayed in a Tk canvas. #---------------------------------------------------------------------- # # Procedures for illustrating the progress of the algorithm package require Tk proc illustrate { command } { uplevel 1 $command } # Plot the raw data proc plotPoints { points } { set n 0 foreach p $points { foreach { x y } $p break set cx [expr { 500 * $x + 6 }] set cy [expr { 506 - 500 * $y }] .c create oval [expr { $cx - 3 }] [expr { $cy - 3 }] \ [expr { $cx + 3 }] [expr { $cy + 3 }] \ -fill black -tags point } return } # Plot the corner points used for interior point elimination proc corner { x y label } { set cx [expr { 500 * $x + 6 }] set cy [expr { 506 - 500 * $y }] .c create rectangle [expr { $cx - 4 }] [expr { $cy - 4 }] \ [expr { $cx+4 }] [expr { $cy + 4 }] \ -fill {} -outline red -tags corner .c create text [expr { $cx + 5 }] $cy -text $label -anchor w } # Plot the rectangle used for interior point elimination proc rectangle { x0 y0 x1 y1 } { set cx0 [expr { 500 * $x0 + 6 }] set cy0 [expr { 506 - 500 * $y0 }] set cx1 [expr { 500 * $x1 + 6 }] set cy1 [expr { 506 - 500 * $y1 }] .c create rectangle $cx0 $cy0 $cx1 $cy1 -fill \#cccccc -outline black \ -tags interior .c lower interior point return } # Plot a partial hull under construction proc polyline { tag pts args } { set cmd [list .c create line] foreach p $pts { foreach { x y } $p break lappend cmd [expr { 500 * $x + 6 }] [expr { 506 - 500 * $y}] } lappend cmd -tags $tag foreach arg $args { lappend cmd $arg } eval $cmd .c lower $tag point return } expr { srand( 4 ) } grid [canvas .c -width 586 -height 512 -background white] for { set i 0 } { $i < 32 } { incr i } { lappend points [list [expr { rand() }] [expr { rand() }]] } hull2d $points ---- [Category Mathematics] [http://www.shop263.com/downsoft/827.htm 无水乙醇] [http://www.shop263.com/downsoft/828.htm 无铁硫酸铝] [http://www.shop263.com/downsoft/829.htm 磷酸二氢锌] [http://www.shop263.com/downsoft/830.htm 磷酸氢二铵] [http://www.shop263.com/downsoft/831.htm 磷酸氢二钠] [http://www.shop263.com/downsoft/832.htm 磷酸氢钙] [http://www.shop263.com/downsoft/833.htm 磷酸三钙] [http://www.shop263.com/downsoft/834.htm 磷酸三钾] [http://www.shop263.com/downsoft/835.htm 磷酸三乙酯] [http://www.shop263.com/downsoft/836.htm 磷酸盐] [http://www.shop263.com/downsoft/837.htm 磷酸一铵] [http://www.shop263.com/downsoft/838.htm 磷酸一铵肥料] [http://www.shop263.com/downsoft/839.htm 磷酸一钙] [http://www.shop263.com/downsoft/840.htm 磷酸一钠] [http://www.shop263.com/downsoft/841.htm 磷酸酯] [http://www.shop263.com/downsoft/842.htm 流平剂] [http://www.shop263.com/downsoft/843.htm 硫铵] [http://www.shop263.com/downsoft/844.htm 硫代硫酸钠] [http://www.shop263.com/downsoft/845.htm 硫化黑] [http://www.shop263.com/downsoft/846.htm 硫化碱] [http://www.shop263.com/downsoft/847.htm 硫磺] [http://www.shop263.com/downsoft/848.htm 硫利达嗪] [http://www.shop263.com/downsoft/849.htm 硫脲] [http://www.shop263.com/downsoft/850.htm 硫氢化钠] [http://www.shop263.com/downsoft/851.htm 硫氰酸铵] [http://www.shop263.com/downsoft/852.htm 硫氰酸钾] [http://www.shop263.com/downsoft/853.htm 硫氰酸钠] [http://www.shop263.com/downsoft/854.htm 硫氰酸亚铜] [http://www.shop263.com/downsoft/855.htm 硫氰酸盐] [http://www.shop263.com/downsoft/856.htm 硫石膏] [http://www.shop263.com/downsoft/857.htm 硫酸] [http://www.shop263.com/downsoft/858.htm 硫酸铵] [http://www.shop263.com/downsoft/859.htm 硫酸钡] [http://www.shop263.com/downsoft/860.htm 硫酸二甲酯] [http://www.shop263.com/downsoft/861.htm 硫酸锆] [http://www.shop263.com/downsoft/862.htm 硫酸钾] [http://www.shop263.com/downsoft/863.htm 硫酸铝] [http://www.shop263.com/downsoft/864.htm 硫酸镁] [http://www.shop263.com/downsoft/865.htm 硫酸锰] [http://www.shop263.com/downsoft/866.htm 硫酸镍] [http://www.shop263.com/downsoft/867.htm 硫酸镍铵] [http://www.shop263.com/downsoft/868.htm 硫酸铅] [http://www.shop263.com/downsoft/869.htm 硫酸铜] [http://www.shop263.com/downsoft/870.htm 硫酸锌] [http://www.shop263.com/downsoft/871.htm 硫酸亚铁] [http://www.shop263.com/downsoft/873.htm 硫酸亚锡] [http://www.shop263.com/downsoft/873.htm 硫酸氧钛] [http://www.shop263.com/downsoft/874.htm 硫酸铟] [http://www.shop263.com/downsoft/875.htm 硫酸银] [http://www.shop263.com/downsoft/876.htm 六氟磷酸铵] [http://www.shop263.com/downsoft/877.htm 六氟磷酸钾] [http://www.shop263.com/downsoft/878.htm 六氟磷酸银] [http://www.shop263.com/downsoft/879.htm 六甲基二硅胺烷] [http://www.shop263.com/downsoft/880.htm 六甲基二硅脲] [http://www.shop263.com/downsoft/881.htm 六硼化钙] [http://www.shop263.com/downsoft/882.htm 六偏磷酸钠] [http://www.shop263.com/downsoft/883.htm 六氢苯酐] [http://www.shop263.com/downsoft/884.htm 氯化铁] [http://www.shop263.com/downsoft/885.htm 六溴环十二烷] [http://www.shop263.com/downsoft/886.htm 铝锭] [http://www.shop263.com/downsoft/887.htm 钒铁] [http://www.shop263.com/downsoft/888.htm 铝酸钙] [http://www.shop263.com/downsoft/889.htm 氯胺] [http://www.shop263.com/downsoft/890.htm 氯吡啶] [http://www.shop263.com/downsoft/891.htm 氯代叔丁烷] [http://www.shop263.com/downsoft/892.htm 氯化EVA] [http://www.shop263.com/downsoft/893.htm 氯化氨基汞] [http://www.shop263.com/downsoft/894.htm 二氧化锆] [http://www.shop263.com/downsoft/895.htm 二氧化硅] [http://www.shop263.com/downsoft/896.htm 二氧化硫] [http://www.shop263.com/downsoft/897.htm 二氧化硫脲] [http://www.shop263.com/downsoft/898.htm 二氧化锰] [http://www.shop263.com/downsoft/899.htm 二氧化钛] [http://www.shop263.com/downsoft/900.htm 二氧化碳] [http://www.shop263.com/downsoft/901.htm 二氧化硒] [http://www.shop263.com/downsoft/902.htm 二氧化锡] [http://www.shop263.com/downsoft/903.htm 二氧化锗] [http://www.shop263.com/downsoft/904.htm 二乙基锌] [http://www.shop263.com/downsoft/905.htm 钒酸盐] [http://www.shop263.com/downsoft/906.htm 钒铁合金] [http://www.shop263.com/downsoft/907.htm 方解石] [http://www.shop263.com/downsoft/908.htm 方解石粉] [http://www.shop263.com/downsoft/909.htm 芳香烃] [http://www.shop263.com/downsoft/910.htm 氟氯苄] [http://www.shop263.com/downsoft/911.htm 纺织染整助剂] [http://www.shop263.com/downsoft/912.htm 纺织助剂] [http://www.shop263.com/downsoft/913.htm 钾冰晶石] [http://www.shop263.com/downsoft/914.htm 钾长石] [http://www.shop263.com/downsoft/915.htm 钾肥] [http://www.shop263.com/downsoft/916.htm 间羟基二苯胺] [http://www.shop263.com/downsoft/917.htm 间溴苯胺] [http://www.shop263.com/downsoft/918.htm 间溴苯酚] [http://www.shop263.com/downsoft/919.htm 间溴硝基苯] [http://www.shop263.com/downsoft/920.htm 碱锰电池] [http://www.shop263.com/downsoft/921.htm 碱式硫酸铬] [http://www.shop263.com/downsoft/922.htm 碱式碳酸铋] [http://www.shop263.com/downsoft/923.htm 碱式碳酸铜] [http://www.shop263.com/downsoft/924.htm 碱性蛋白酶] [http://www.shop263.com/downsoft/925.htm 透明蜡] [http://www.shop263.com/downsoft/926.htm 五氧化二锑] [http://www.shop263.com/downsoft/927.htm 焦磷酸钾] [http://www.shop263.com/downsoft/928.htm 焦磷酸铜] [http://www.shop263.com/downsoft/929.htm 焦锑酸钠] [http://www.shop263.com/downsoft/930.htm 焦亚硫酸钠] [http://www.shop263.com/downsoft/931.htm 结晶氯化铝] [http://www.shop263.com/downsoft/932.htm 芥酸酰胺] [http://www.shop263.com/downsoft/933.htm 金红石钛白粉] [http://www.shop263.com/downsoft/934.htm 金属钝化剂] [http://www.shop263.com/downsoft/935.htm 金属铬] [http://www.shop263.com/downsoft/936.htm 金属锰] [http://www.shop263.com/downsoft/937.htm 纳米粉] [http://www.shop263.com/downsoft/938.htm 金属清洗剂] [http://www.shop263.com/downsoft/939.htm 小苏打] [http://www.shop263.com/downsoft/940.htm 鞋材] [http://www.shop263.com/downsoft/941.htm 锌焙砂] [http://www.shop263.com/downsoft/942.htm 锌锭] [http://www.shop263.com/downsoft/943.htm 溴苯] [http://www.shop263.com/downsoft/944.htm 溴代环戊烷] [http://www.shop263.com/downsoft/945.htm 溴代烷] [http://www.shop263.com/downsoft/946.htm 溴化钙] [http://www.shop263.com/downsoft/947.htm 溴化钾] [http://www.shop263.com/downsoft/948.htm 溴化镁] [http://www.shop263.com/downsoft/949.htm 溴化锰] [http://www.shop263.com/downsoft/950.htm 溴化钠] [http://www.shop263.com/downsoft/951.htm 溴化锌] [http://www.shop263.com/downsoft/952.htm 溴素] [http://www.shop263.com/downsoft/953.htm 溴酸钾] [http://www.shop263.com/downsoft/954.htm 溴酸钠] [http://www.shop263.com/downsoft/955.htm 溴乙烷] [http://www.shop263.com/downsoft/956.htm 溴乙酰水杨酰胺] [http://www.shop263.com/downsoft/957.htm 溴异丁酸乙酯] [http://www.shop263.com/downsoft/958.htm 压缩氢] [http://www.shop263.com/downsoft/959.htm 亚磷酸] [http://www.shop263.com/downsoft/960.htm 亚磷酸二甲酯] [http://www.shop263.com/downsoft/961.htm 亚磷酸三苯酯] [http://www.shop263.com/downsoft/962.htm 亚磷酸一苯二异辛酯] [http://www.shop263.com/downsoft/963.htm 亚硫酸钠] [http://www.shop263.com/downsoft/964.htm 亚硫酸氢铵] [http://www.shop263.com/downsoft/965.htm 亚硫酸氢钠] [http://www.shop263.com/downsoft/966.htm 亚氯酸钠] [http://www.shop263.com/downsoft/967.htm 亚铁氰化钾] [http://www.shop263.com/downsoft/968.htm 亚硒酸钡] [http://www.shop263.com/downsoft/969.htm 亚硒酸钙] [http://www.shop263.com/downsoft/970.htm 亚硒酸钠] [http://www.shop263.com/downsoft/971.htm 亚硒酸锌] [http://www.shop263.com/downsoft/972.htm 亚硝酸钙] [http://www.shop263.com/downsoft/973.htm 亚硝酸钠] [http://www.shop263.com/downsoft/974.htm 氩气] [http://www.shop263.com/downsoft/975.htm 盐湖生物] [http://www.shop263.com/downsoft/976.htm 盐化工] [http://www.shop263.com/downsoft/977.htm 盐基性硫酸铬] [http://www.shop263.com/downsoft/978.htm 盐酸] [http://www.shop263.com/downsoft/979.htm 盐酸氯苯胍] [http://www.shop263.com/downsoft/980.htm 杨梅醛] [http://www.shop263.com/downsoft/981.htm 氧化钙] [http://www.shop263.com/downsoft/982.htm 氧化钙锆] [http://www.shop263.com/downsoft/983.htm 氧化锆] [http://www.shop263.com/downsoft/984.htm 二氧化锆] [http://www.shop263.com/downsoft/985.htm 氢氧化锆] [http://www.shop263.com/downsoft/986.htm 氧化镉] [http://www.shop263.com/downsoft/987.htm 氧化铬] [http://www.shop263.com/downsoft/988.htm 氧化铬绿] [http://www.shop263.com/downsoft/989.htm 氧化汞] [http://www.shop263.com/downsoft/990.htm 氧化钴] [http://www.shop263.com/downsoft/991.htm 氧化镧] [http://www.shop263.com/downsoft/992.htm 氧化铝] [http://www.shop263.com/downsoft/993.htm 氧化铝] [http://www.shop263.com/downsoft/994.htm 氧化镁] [http://www.shop263.com/downsoft/995.htm 氧化镁锆] [http://www.shop263.com/downsoft/996.htm 氧化钼] [http://www.shop263.com/downsoft/997.htm 氧化镍] [http://www.shop263.com/downsoft/998.htm 氧化钕] [http://www.shop263.com/downsoft/999.htm 氧化镨] [http://www.shop263.com/downsoft/1000.htm 氧化铅] [http://www.shop263.com/downsoft/1001.htm 氧化铈] [http://www.shop263.com/downsoft/1002.htm 氧化锶锆] [http://www.shop263.com/downsoft/1003.htm 氧化钛] [http://www.shop263.com/downsoft/1004.htm 氧化锑] [http://www.shop263.com/downsoft/1005.htm 氧化铁黑] [http://www.shop263.com/downsoft/1006.htm 氧化铁红] [http://www.shop263.com/downsoft/1007.htm 氧化铜] [http://www.shop263.com/downsoft/1008.htm 氧化锌] [http://www.shop263.com/downsoft/1009.htm 氧化亚钴] [http://www.shop263.com/downsoft/1010.htm 氧化亚镍] [http://www.shop263.com/downsoft/1011.htm 氧化亚铜] [http://www.shop263.com/downsoft/1012.htm 氧化亚锡] [http://www.shop263.com/downsoft/1013.htm 氧化钇锆] [http://www.shop263.com/downsoft/1014.htm 氧化铟] [http://www.shop263.com/downsoft/1015.htm 氧化银] [http://www.shop263.com/downsoft/1016.htm 氧氯化锆] [http://www.shop263.com/downsoft/1017.htm 氧气] [http://www.shop263.com/downsoft/1018.htm 水杨酸] [http://www.shop263.com/downsoft/1019.htm 药用铁粉] [http://www.shop263.com/downsoft/1020.htm 无水醋酸钠] [http://www.shop263.com/downsoft/1021.htm 萤石块] [http://www.shop263.com/downsoft/1022.htm 液氨] [http://www.shop263.com/downsoft/1023.htm 液碱] [http://www.shop263.com/downsoft/1024.htm 液氯] [http://www.shop263.com/downsoft/1025.htm 液体二氧化硫] [http://www.shop263.com/downsoft/1026.htm 液体二氧化碳] [http://www.shop263.com/downsoft/1027.htm 酚醛树脂] [http://www.shop263.com/downsoft/1028.htm 液体氯化钙] [http://www.shop263.com/downsoft/1029.htm 液体氰化钠] [http://www.shop263.com/downsoft/1030.htm 液体三氧化硫] [http://www.shop263.com/downsoft/1031.htm 液体烧碱] [http://www.shop263.com/downsoft/1032.htm 液体无水氨] [http://www.shop263.com/downsoft/1033.htm 液氩] [http://www.shop263.com/downsoft/1034.htm 一氯乙酸] [http://www.shop263.com/downsoft/1035.htm 一氰] [http://www.shop263.com/downsoft/1036.htm 一水硫酸锰] [http://www.shop263.com/downsoft/1037.htm 氧化铝] [http://www.shop263.com/downsoft/1038.htm 衣康酸] [http://www.shop263.com/downsoft/1039.htm 衣康酸酐] [http://www.shop263.com/downsoft/1040.htm 乙丙橡胶] [http://www.shop263.com/downsoft/1041.htm 乙醇钠] [http://www.shop263.com/downsoft/1042.htm 乙二氨] [http://www.shop263.com/downsoft/1043.htm 乙二胺四乙酸] [http://www.shop263.com/downsoft/1044.htm 乙二胺四乙酸二钠] [http://www.shop263.com/downsoft/1045.htm 乙二醛] [http://www.shop263.com/downsoft/1046.htm 乙炔] [http://www.shop263.com/downsoft/1047.htm 乙炔炭黑] [http://www.shop263.com/downsoft/1048.htm 乙酸镍] [http://www.shop263.com/downsoft/1049.htm 乙位萘] [http://www.shop263.com/downsoft/1050.htm 乙位萘乙醚] [http://www.shop263.com/downsoft/1051.htm 乙烯基吡咯烷酮] [http://www.shop263.com/downsoft/1052.htm 乙烯利] [http://www.shop263.com/downsoft/1053.htm 乙酰水杨酰胺] [http://www.shop263.com/downsoft/1054.htm 乙氧基喹啉] [http://www.shop263.com/downsoft/1055.htm 钛白粉] [http://www.shop263.com/downsoft/1056.htm 异氰尿酸] [http://www.shop263.com/downsoft/1057.htm 异戊烯醇] [http://www.shop263.com/downsoft/1058.htm 异辛酸钴] [http://www.shop263.com/downsoft/1059.htm 铟锭] [http://www.shop263.com/downsoft/1060.htm 铟粒] [http://www.shop263.com/downsoft/1061.htm 铟锡] [http://www.shop263.com/downsoft/1062.htm 硝酸钎维素薄膜] [http://www.shop263.com/downsoft/1063.htm 萤石粉] [http://www.shop263.com/downsoft/1064.htm 硬脂酸] [http://www.shop263.com/downsoft/1065.htm 硬脂酸钡] [http://www.shop263.com/downsoft/1066.htm 硬脂酸酰胺] [http://www.shop263.com/downsoft/1067.htm 油墨] [http://www.shop263.com/downsoft/1068.htm 油漆] [http://www.shop263.com/downsoft/1069.htm 油酸] [http://www.shop263.com/downsoft/1070.htm 油酸酰胺] [http://www.shop263.com/downsoft/1071.htm 有机氟] [http://www.shop263.com/downsoft/1072.htm 有机氟涂料] [http://www.shop263.com/downsoft/1073.htm 有机硅] [http://www.shop263.com/downsoft/1074.htm 有机硅树脂] [http://www.shop263.com/downsoft/1075.htm 有机膨润] [http://www.shop263.com/downsoft/1076.htm 有机膨润土] [http://www.shop263.com/downsoft/1077.htm 有机溴阻燃剂] [http://www.shop263.com/downsoft/1078.htm 有机颜料] [http://www.shop263.com/downsoft/1079.htm 有机锗] [http://www.shop263.com/downsoft/1070.htm 有水氢氟酸] [http://www.shop263.com/downsoft/1081.htm 有莹石] [http://www.shop263.com/downsoft/1082.htm 元明粉] [http://www.shop263.com/downsoft/1083.htm 原辅材料] [http://www.shop263.com/downsoft/1084.htm 原甲酸三乙酯] [http://www.shop263.com/downsoft/1085.htm 原乙酸三甲酯] [http://www.shop263.com/downsoft/1086.htm 匀染剂] [http://www.shop263.com/downsoft/1087.htm 再制盐] [http://www.shop263.com/downsoft/1088.htm 造纸] [http://www.shop263.com/downsoft/1089.htm 增白剂] [http://www.shop263.com/downsoft/1090.htm 增稠剂] [http://www.shop263.com/downsoft/1091.htm 单晶] [http://www.shop263.com/downsoft/1092.htm 锗锭] [http://www.shop263.com/downsoft/1093.htm 正庚酸] [http://www.shop263.com/downsoft/1094.htm 正己酸] [http://www.shop263.com/downsoft/1095.htm 正钼酸铵] [http://www.shop263.com/downsoft/1096.htm 正戊酸] [http://www.shop263.com/downsoft/1097.htm 植物提取物] [http://www.shop263.com/downsoft/1098.htm 蛭石粉] [http://www.shop263.com/downsoft/1099.htm 中铬黄] [http://www.shop263.com/downsoft/1100.htm 中性蛋白酶] [http://www.shop263.com/downsoft/1101.htm 仲钼酸铵] [http://www.shop263.com/downsoft/1102.htm 仲钨酸铵] [http://www.haishun.net 门禁] [http://www.haishun.net 监控] [http://www.genset-sh.com 发电机] [http://www.haishun.net/p_mjds.htm 门禁] [http://www.haishun.net/p_mjds_dmmj.htm 门禁] [http://www.haishun.net/p_mjds_lwmj.htm 门禁] [http://www.haishun.net/p_mjds_yjs.htm 门禁] [http://www.haishun.net/cctv.htm 监控] [http://www.haishun.net/p_cctv_jk.htm 监控] [http://www.haishun.net/p_cctv_jk_sxj.htm 监控] [http://www.haishun.net/p_cctv_jk_xsq.htm 监控] [http://www.haishun.net/p_cctv_jk_yplxj.htm 监控] [http://www.haishun.net/p_cctv_jk_yt.htm 监控] [http://www.haishun.net/p_cctv_jk_zj.htm 监控] [http://www.7766888.com 虚拟主机] [http://www.7766888.com/introcom.htm asp虚拟主机] [http://www.7766888.com/introcn.htm php虚拟主机] [http://www.7766888.com/u_puji.htm unix虚拟主机] [http://www.7766888.com/mysql.htm windows虚拟主机] [http://www.7766888.com/u_jingji.htm 纯空间虚拟主机] [http://www.7766888.com/u_biaozhun.htm 虚拟主机] [http://www.7766888.com/u_zhiqiang.htm 虚拟主机] [http://www.7766888.com/w_jingji.htm 虚拟主机] [http://www.7766888.com/w_biaozhun.htm 虚拟主机] [http://www.asp169.com/marketingsoft1.htm 空压机] [http://www.asp169.com/marketingsoft2.htm 压缩机] [http://www.asp169.com/zhaoguan.htm 消毒剂] [http://www.xsjby.cn 化工泵] [http://www.asp169.com/zhaoguan2.htm 二氧化氯] [http://www.fm360.net 网址大全] [http://www.fm360.net/page/001.html 网址大全] [http://www.fm360.net/page/game.htm 网址大全] [http://www.fm360.net/page/software.htm 网址大全] [http://www.fm360.net/page/jinshi.htm 网址大全] [http://www.fm360.net/page/music.htm 网址大全] [http://www.fm360.net/page/053.html 网址大全] [http://www.fm360.net/page/flash.htm 网址大全] [http://www.fm360.net/page/newsweek.htm 网址大全] [http://www.fm360.net/page/club.htm 网址大全] [http://www.fm360.net/page/stock.htm 网址大全] [http://www.fm360.net/page/love.htm 网址大全] [http://www.fm360.net/page/netcard.htm 网址大全] [http://www.fm360.net/page/025.html 网址大全] [http://www.fm360.net/page/hardware.htm 网址大全] [http://www.fm360.net/page/sport.htm 网址大全] [http://www.fm360.net/page/shouji.htm 网址大全] [http://www.fm360.net/page/ym.htm 网址大全] [http://www.fm360.net/page/ylbj.htm 网址大全] [http://www.fm360.net/page/car.htm 网址大全] [http://www.jifamark.com 线号机] [http://www.jifamark.com/xhj.htm 线号机] [http://www.jifamark.com 打号机] [http://global.garrywa.com/index1.htm gemstone globe] [http://global.garrywa.com/recommend.asp gemstone globe] [http://global.garrywa.com/productclass.asp gemstone globe] [http://global.garrywa.com gemstone globe] [http://global.garrywa.com/order.htm gemstone globe] [http://fireworks.garrywa.com Fireworks] [http://fireworks.garrywa.com/about.htm Fireworks] [http://fireworks.garrywa.com/factory.htm Fireworks] [http://fireworks.garrywa.com/index.htm Fireworks] [http://fireworks.garrywa.com/pro.htm Fireworks] [http://fireworks.garrywa.com/faq.htm Fireworks] [http://fireworks.garrywa.com/safty.htm Fireworks] [http://fireworks.garrywa.com/contact.htm Fireworks] [http://fireworks.garrywa.com/productclass.asp Fireworks] [http://www.funasia.cn 装修] [http://www.funasia.cn 团购] [http://www.funasia.cn/pinpai.asp 装修] [http://www.funasia.cn/client/gb_list.asp 装修] [http://www.funasia.cn/design/index.asp 装修] [http://www.funasia.cn/funasiaHome/index.asp 装修] [http://www.funasia.cn/jiancai.asp 装修] [http://www.funasia.cn/shishang.asp 装修] [http://www.funasia.cn/mall/AboutOur.htm 团购] [http://www.sec66.com 压缩机] [http://www.sec66.com 空压机] [http://www.sec66.com/ym001/pro.asp 空压机] [http://www.sec66.com/index001.htm 空压机] [http://www.sec66.com/ym001/intr.htm 空压机] [http://www.sec66.com/ym001/application.htm 压缩机] [http://www.sec66.com/ym001/service.htm 压缩机] [http://www.sec66.com/ym001/news.htm 压缩机] [http://www.sec66.com/ym001/bbs.htm 压缩机] [http://www.sec66.com/ym001/en_intr.htm 压缩机] [http://www.genset-sh.com 发电机] [http://www.genset-sh.com/cai.asp 发电机] [http://www.genset-sh.com/tancu.asp 发电机] [http://www.genset-sh.com/xi3.asp 发电机] [http://www.genset-sh.com/lan.asp 发电机] [http://www.genset-sh.com/leng.asp 发电机] [http://www.genset-sh.com/jiyou.asp 发电机] [http://www.genset-sh.com/ranyou.asp 发电机] [http://www.genset-sh.com/kuongqi.asp 发电机] [http://www.genset-sh.com/ssss.asp 发电机] [http://www.zj-df.com 减速机] [http://www.xhhj.com.cn 离心机] [http://www.cndevi.com 化妆品] [http://www.cndevi.com/About.asp 化妆品] [http://www.cndevi.com/Product.asp 化妆品] [http://www.cndevi.com/sale.asp 化妆品] [http://www.cndevi.com/Went.asp 化妆品] [http://www.sinostrategy.com 战略咨询] [http://www.sinostrategy.com/finalbexcel/index.asp 战略咨询] [http://www.sinostrategy.com/finalbexcel/service/index.asp 战略咨询] [http://www.sinostrategy.com/finalbexcel/expertise/index.asp 战略咨询] [http://www.sinostrategy.com/finalbexcel/practice/index.asp 战略咨询] [http://www.sinostrategy.com/finalbexcel/knowledge/index.asp 战略咨询] [http://www.sinostrategy.com/finalbexcel/connect/index.asp 战略咨询] [http://www.sinostrategy.com/finalbexcel/company/media_center/index.asp 战略咨询] [http://www.hdfix.com.cn 数据恢复]