当前位置: 首页>>代码示例>>Python>>正文


Python SVGdraw.group方法代码示例

本文整理汇总了Python中SVGdraw.group方法的典型用法代码示例。如果您正苦于以下问题:Python SVGdraw.group方法的具体用法?Python SVGdraw.group怎么用?Python SVGdraw.group使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在SVGdraw的用法示例。


在下文中一共展示了SVGdraw.group方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: fill

# 需要导入模块: import SVGdraw [as 别名]
# 或者: from SVGdraw import group [as 别名]
 def fill(self,elt):
     pattern=SVGdraw.SVGelement('pattern',attributes=
                                {"height":"20", "width":"20",
                                 "patternUnits":"userSpaceOnUse",
                                 "patternContentUnits":"userSpaceOnUse",
                                 "id": "maso%04d"%blazon.Ordinary.id})
     blazon.Ordinary.id+=1
     group=SVGdraw.group()
     group.addElement(self.color2.fill(SVGdraw.rect(x="0",y="9",width="20",height="2")))
     group.addElement(self.color2.fill(SVGdraw.rect(x="0",y="10",width="1",height="10")))
     group.addElement(self.color2.fill(SVGdraw.rect(x="19",y="10",width="1",height="10")))
     group.addElement(self.color2.fill(SVGdraw.rect(x="9",y="0",width="2", height="10")))
     group.addElement(self.color2.fill(SVGdraw.rect(x="0",y="0",width="20",height="1")))
     group.addElement(self.color2.fill(SVGdraw.rect(x="0",y="19",width="20",height="1")))
     pattern.addElement(group)
     blazon.Ordinary.defs.append(pattern)
     elt=self.color1.fill(elt)
     newelt=SVGdraw.group()
     newelt.addElement(elt)
     newbase=SVGdraw.rect(x=-blazon.Ordinary.FESSPTX,
                          y=-blazon.Ordinary.FESSPTY,
                          width=blazon.Ordinary.WIDTH,
                          height=blazon.Ordinary.HEIGHT,
                          fill="url(#%s)"%pattern.attributes["id"])
     newelt.addElement(newbase)
     return newelt                               
开发者ID:ipatrol,项目名称:pyblazon,代码行数:28,代码来源:treatment.py

示例2: build

# 需要导入模块: import SVGdraw [as 别名]
# 或者: from SVGdraw import group [as 别名]
 def build(self):
     (sx, sy) = self._srcchgset.position()
     h_offset = self._srcchgset.tag_offset(self._h)
     self._position = (sx + (self._srcchgset.extent()[0])/2,
                       sy - (3*self._h)/2 + h_offset)
     x = self._position[0]+(self._w-self._tw)/2
     y = self._position[1]
     r = UNIT/2
     rect = SVG.rect(x,y,self._tw,self._h,
                     self._srcchgset.strokecolor(),
                     self._srcchgset.fillcolor(), 
                     self._srcchgset.strokewidth())
     rect.attributes['rx'] = r
     rect.attributes['ry'] = r        
     rect.attributes['opacity'] = str(self._opacity/100.0) 
     text = SVG.text(self._position[0]+self._w/2, 
                     self._position[1]+self._h/2+UNIT/4,
                     "%s" % self._title.encode('utf-8'), 
                     self._srcchgset.fontsize(), 
                     self._srcchgset.fontname())
     txc = SvgColor('white')
     text.attributes['style'] = 'fill:%s; text-anchor: middle' % txc.rgb()
     name = self._title.encode('utf-8').replace('/','')
     g = SVG.group('grp%d' % self._revision, elements=[rect, text])
     link = "%s/changeset/%d" % (self._parent.urlbase(), self._revision)
     self._link = SVG.link(link, elements=[g])
     self._link.attributes['id'] = 'rev%d' % self._revision
     self._link.attributes['style'] = \
         'color: %s; background-color: %s' % \
             (self._srcchgset.fillcolor(), self._srcchgset.strokecolor())
开发者ID:nyuhuhuu,项目名称:trachacks,代码行数:32,代码来源:svgview.py

示例3: build

# 需要导入模块: import SVGdraw [as 别名]
# 或者: from SVGdraw import group [as 别名]
 def build(self):
     self._position = self._parent.position()
     x = self._position[0]+(self._w-self._tw)/2
     y = self._position[1]
     r = UNIT/2
     rect = SVG.rect(x,y,self._tw,self._h,
                     self._parent.fillcolor(), 
                     self._parent.strokecolor(), 
                     self._parent.strokewidth())
     rect.attributes['rx'] = r
     rect.attributes['ry'] = r        
     text = SVG.text(self._position[0]++self._w/2, 
                     self._position[1]+self._h/2+UNIT/6,
                     "/%s" % self._title.encode('utf-8'), 
                     self._parent.fontsize(), self._parent.fontname())
     text.attributes['style'] = 'text-anchor: middle'
     name = self._title.encode('utf-8').replace('/','')
     g = SVG.group('grp%s' % name, elements=[rect, text])
     href = Href(self._parent.urlbase())
     self._link = SVG.link(plink(href.browser(self._title)), elements=[g])
开发者ID:nyuhuhuu,项目名称:trachacks,代码行数:22,代码来源:svgview.py

示例4: toSVG

# 需要导入模块: import SVGdraw [as 别名]
# 或者: from SVGdraw import group [as 别名]
	def toSVG(self):
		#modification du maximum en X : depend du nombre d'element
		global XMAX
		XMAX = len(self.infos)*(BAR_THICKNESS+SPACE)
		# creation du document
		doc=SVGdraw.drawing()
		svg=SVGdraw.svg(None, '100%','100%')
		
		# creation des patterns pour les axes et la grille
		axeX = SVGdraw.pattern(id="axeX",width="20",height="10",patternUnits="userSpaceOnUse")
		axeX.addElement(SVGdraw.path("M 0 0, L 0 10","none","black","0.25"))
		axeX.addElement(SVGdraw.path("M 10 10, V 5","none","lightgray","0.25"))
		axeY = SVGdraw.pattern(id="axeY",width="10",height="20",patternUnits="userSpaceOnUse")
		axeY.addElement(SVGdraw.path("M 0 0, L 10 0","none","black","0.25"))
		axeY.addElement(SVGdraw.path("M 5 10, L 10 10","none","lightgray","0.25"))
		grid = SVGdraw.pattern(id="grid",width="10",height="10",patternUnits="userSpaceOnUse")
		grid.addElement(SVGdraw.path("M 0 0, L 10 0, L 10 10,L 0 10, L 0 0","none","lightgray","0.25"))

		defs=SVGdraw.defs()
		defs.addElement(axeX)
		defs.addElement(axeY)
		defs.addElement(grid)
		svg.addElement(defs)
		
		group=SVGdraw.group(transform="translate(130,130) scale(1,-1)")
		
		# dessin de la grille de fond
		group.addElement(SVGdraw.rect(0,0,XMAX,YMAX,"url(#grid)","lightgray","0.25"))
	
		# dessin des axes
		group.addElement(SVGdraw.rect(0,-10,XMAX,10,"url(#axeX)"))
		group.addElement(SVGdraw.rect(-10,0,10,YMAX,"url(#axeY)"))
		group.addElement(SVGdraw.line(0,0,XMAX,0,"black",1))
		group.addElement(SVGdraw.line(0,0,0,YMAX,"black",1))
		# dessin des fleches des axes
		group.addElement(SVGdraw.polygon([[-3,YMAX],[3,YMAX],[0,YMAX+10]], "black","white"))
		group.addElement(SVGdraw.polygon([[XMAX,-3],[XMAX,3],[XMAX+10,0]], "black","white"))
		
		textgroup=SVGdraw.group(transform="scale(1,-1)")
		# graduations
		for y in range(0,YMAX+STEP,STEP):
			textgroup.addElement(SVGdraw.text(-STEP,y, str(y), 8, text_anchor="middle", transform="translate(0,%d)"%(-y*2)))
		textgroup.addElement(SVGdraw.text(0,YMAX+SPACE, r"%", 8, transform="translate(0,%d)"%(-(YMAX+SPACE)*2)))
		
		# ajout de la legende principale
		legendText = "Repertoire %s - taille %.02f ko"%(self.rootName,float(self.totalSize/1024.0))
		textgroup.addElement(SVGdraw.text(XMAX,YMAX+3*SPACE, legendText,12, "verdana", 
			text_anchor="end", fill="darkblue",transform="translate(0,%d)"%(-(YMAX+3*SPACE)*2)))
		
		group.addElement(textgroup)
		
		# tri des elements selon la taille occupee
		self.infos.sort(self.tupleCmp)
		
		xincr=0
		#self.infos
		for (name,size) in self.infos:
			# calcul du pourcentage de place occupe
			pourcent = (100.0*float(size))/float(self.totalSize)
			height=int(pourcent*YMAX/100);
			# insertion du texte de l'emplacement sur le disque et de la taille occupee en Ko
			legendText = "%s (%### ###.02f ko)"%(name,float(size/1024.0))
			legend = SVGdraw.text(xincr+BAR_THICKNESS/2, -10,legendText,8,"verdana",text_anchor="begin",fill="blue")
			legend.attributes["transform"]="scale(1,-1) translate(0,20) rotate(45,%d,-10)"%(xincr+BAR_THICKNESS/2)
			group.addElement(legend)
			
			#insertion de la barre representant le pourcentage
			group.addElement(SVGdraw.rect(xincr,0,BAR_THICKNESS, height,"green","black",opacity=0.5))
			
			#insertion de la taille en pourcentage a gauche de la barre
			pourcentText=SVGdraw.text(xincr+BAR_THICKNESS/2, height+SPACE,"%02.01f%% "%pourcent,6,
				"arial", text_anchor="middle", fill="black")
			pourcentText.attributes["transform"]="scale(1,-1) translate(0,-%d)"%((height+SPACE)*2)
			group.addElement(pourcentText)
			# augmentation du l'abscisse en X
			xincr = xincr+BAR_THICKNESS+SPACE
			
		svg.addElement(group)
		doc.setSVG(svg)
		doc.toXml(self.svgURL)
开发者ID:BackupTheBerlios,项目名称:openphysic-svn,代码行数:82,代码来源:stats.py

示例5: doGrid

# 需要导入模块: import SVGdraw [as 别名]
# 或者: from SVGdraw import group [as 别名]
	def doGrid(self, canvas, rows, verticalOffset, partHeight, columns, horizontalOffset, partWidth, gridsize, lineColor, fillColor, penWidth):
		polySize = str(gridsize) + self.units

		group = SVGdraw.group()
		group.attributes['id'] = 'map'
		group.attributes['rows'] = rows
		group.attributes['columns'] = columns
		group.attributes['cells'] = rows * columns

		# for id
		index = 0
		
		#print "%s rows, %s columns" % ( rows, columns )

		for polyRow in range(0, rows):
			polyTop = verticalOffset + polyRow*partHeight
			polyTopStr = str(polyTop) + self.units

			#do stuff for hexagons
			rowcolumns = columns
			rowoffset = 0
			if self.type == 'hex' or self.type == 'hexpath':
				if polyRow % 2 == 0:
					if (self.width-(horizontalOffset+self.rightMargin-.01)) >= (columns*partWidth + gridsize):
						rowcolumns = columns + 1
				else:
					rowoffset = gridsize/2 + gridsize/4

			for polyColumn in range(0, rowcolumns):
				polyLeft = horizontalOffset + polyColumn*partWidth
				polyLeft += rowoffset
				polyLeftStr = str(polyLeft) + self.units

				if self.type == 'hex':
					gridshape = hexagon(gridsize, polyLeft, polyTop, self.units, stroke=lineColor, fill=fillColor, stroke_width=penWidth)

				elif self.type == 'hexpath':
					gridshape = hexpath(gridsize, polyLeft, polyTop, self.units, stroke=lineColor, fill=fillColor, stroke_width=penWidth)

				else:
					gridshape = SVGdraw.rect(polyLeftStr, polyTopStr, polySize, polySize, stroke=lineColor, fill=fillColor, stroke_width=penWidth)

				"""
				positions = {
					'cell_NW': (index - columns    ),
					'cell_N' : (index - columns * 2),
					'cell_NE': (index - columns + 1),
					'cell_SE': (index + columns    ),
					'cell_S' : (index + columns * 2),
					'cell_SW': (index + columns - 1)
				}
				"""

				gridshape.attributes['id'] = 'cell_' + str(index)
				gridshape.attributes['row'] = str(polyRow)
				gridshape.attributes['col'] = str(polyColumn)

				neighbors_class = [ ]

				evenRow = (polyRow % 2 == 0)
				evenCol = (polyColumn % 2 == 0)
				id = -1

				#print "i%s: polyRow=%s polyColumn=%s" % ( index, polyRow, polyColumn )

				# North OK
				id = index - columns * 2
				if id >= 0:
					neighbors_class.append( "N:cell_" + str(id) )
					#gridshape.attributes['cell_N']  = "cell_" + str(id)

				# South OK
				id = index + columns * 2
				if id <= rows * columns:
					#gridshape.attributes['cell_S']  = "cell_" + str(id)
					neighbors_class.append( "S:cell_" + str(id) )

				# NorthWest OK
				if evenRow:
					if polyColumn > 0:
						id = (index - columns) - 1
				else:
					id = (index - columns)
				if id >= 0:
					neighbors_class.append( "NW:cell_" + str(id) )

				# NorthEst OK
				if polyColumn < columns:
					if evenRow:
						id = index - columns
					elif polyColumn < columns - 1:
						id = index - columns + 1

					if id >= 0:
						neighbors_class.append( "NE:cell_" + str(id) )
						#gridshape.attributes['cell_NW'] = "cell_" + str(id)

				# SouthEst OK
				if evenRow:
					id = index + columns
#.........这里部分代码省略.........
开发者ID:vincent,项目名称:irlig,代码行数:103,代码来源:gridmaps.py

示例6: doGrid

# 需要导入模块: import SVGdraw [as 别名]
# 或者: from SVGdraw import group [as 别名]
	def doGrid(self, canvas, rows, verticalOffset, partHeight, columns, horizontalOffset, partWidth, gridsize, lineColor, fillColor, penWidth):
		polySize = str(gridsize) + self.units

		group = SVGdraw.group()
		group.attributes['id'] = 'map'
		group.attributes['rows'] = rows
		group.attributes['columns'] = columns
		group.attributes['cells'] = rows * columns

		# for id
		index = 0

		#print "%s COLUMNS" % columns
		#print "%s ROWS" % rows

		for polyRow in range(0, rows):
			polyTop = verticalOffset + polyRow*partHeight
			polyTopStr = str(polyTop) + self.units

			#do stuff for hexagons
			rowcolumns = columns
			rowoffset = 0
			if self.type == 'hex' or self.type == 'hexpath':
				if polyRow % 2 == 0:
					if (self.width-(horizontalOffset+self.rightMargin-.01)) >= (columns*partWidth + gridsize):
						rowcolumns = columns + 1
				else:
					rowoffset = gridsize/2 + gridsize/4

			for polyColumn in range(0, rowcolumns):
				polyLeft = horizontalOffset + polyColumn*partWidth
				polyLeft += rowoffset
				polyLeftStr = str(polyLeft) + self.units

				if self.type == 'hex':
					gridshape = hexagon(gridsize, polyLeft, polyTop, self.units, stroke=lineColor, fill=fillColor, stroke_width=penWidth)

				elif self.type == 'hexpath':
					gridshape = hexpath(gridsize, polyLeft, polyTop, self.units, stroke=lineColor, fill=fillColor, stroke_width=penWidth)

				else:
					gridshape = SVGdraw.rect(polyLeftStr, polyTopStr, polySize, polySize, stroke=lineColor, fill=fillColor, stroke_width=penWidth)

				"""
				positions = {
					'cell_NW': (index - rows),
					'cell_N' : (index - rows * 2),
					'cell_NE': (index - rows + 1),
					'cell_SE': (index + rows),
					'cell_S' : (index + rows * 2),
					'cell_SW': (index + rows - 1)
				}
				"""

				gridshape.attributes['id'] = 'cell_' + str(index)

				neighbors_class = 'neighbors-'

				id = index - columns
				if id >= 0:
					#gridshape.attributes['cell_NW'] = "cell_" + str(id)
					neighbors_class += "cell_" + str(id) + '-'

				id = index - columns * 2
				if id >= 0:
					#gridshape.attributes['cell_N']  = "cell_" + str(id)
					neighbors_class += "cell_" + str(id) + '-'

				id = index - columns + 1
				if id >= 0:
					#gridshape.attributes['cell_NE'] = "cell_" + str(id)
					neighbors_class += "cell_" + str(id) + '-'

				id = index + columns - 1
				if id <= rows * columns:
					#gridshape.attributes['cell_SE'] = "cell_" + str(id)
					neighbors_class += "cell_" + str(id) + '-'

				id = index + columns * 2
				if id <= rows * columns:
					#gridshape.attributes['cell_S']  = "cell_" + str(id)
					neighbors_class += "cell_" + str(id) + '-'

				id = index + columns
				if id <= rows * columns:
					#gridshape.attributes['cell_SW'] = "cell_" + str(id)
					neighbors_class += "cell_" + str(id) + '-'

				gridshape.attributes['class'] = neighbors_class

				index = index + 1

				group.addElement(gridshape)

		canvas.addElement(group)
		return canvas
开发者ID:vincent,项目名称:irlig,代码行数:98,代码来源:gridmaps.py

示例7: svgout

# 需要导入模块: import SVGdraw [as 别名]
# 或者: from SVGdraw import group [as 别名]
    def svgout(self,stroke_width=0.3,scale=20,circle_radius=0.3,
               startat=None,coloriter=None,crossings=True,circradius=None,circscale=1):
        # if circradius is some positive number, try to draw a circular(!) diagram
        # circscale is how much to scale the y-dimension by (how thick a circle)
#        try:
#            if type(SVGdraw)!=type(__builtins__):
#		raise Exception("SVGdraw not a module?")
#                return None
#        except NameError:
#	    raise Exception("No SVGDraw found")
#            return None

        cols=['#000000', 
              '#800000', '#808000', '#008080', '#000080',
              '#ff2000', '#ffff20', '#20ffff', '#0020ff',
              '#ff0080', '#ff8000', '#8000ff', '#80ff00']
        if circradius:
            sz=(2*self.ymax*circscale+2+2*circradius)
            svg=SVGdraw.svg(width="%dpx"%(sz*scale), height="%dpx"%(sz*scale),
                            viewBox=[-sz+self.xmodulus/2.0, -sz, 2*sz, 2*sz])
            def transform(x,y):
                # Have to flip it over...
                r=self.ymax*circscale+circradius-y*circscale
                theta=2*math.pi*x/self.xmodulus-math.pi
                return [sz/2+r*math.cos(theta), sz/2+r*math.sin(theta)]
        else:
            svg=SVGdraw.svg(width="%dpx"%((self.xmodulus+2)*scale),
                            height="%dpx"%((self.ymax+2)*scale),
                            viewBox=[-1, -1, self.xmodulus+2,
                                      self.ymax+2])
            def transform(x,y):
                return [x,y]
                        
        defs=SVGdraw.defs(id="defs")
        plusmask=SVGdraw.SVGelement("mask",
                                    attributes={"id":"plusmask"})
        minusmask=SVGdraw.SVGelement("mask",
                                     attributes={"id":"minusmask"})
        if circradius:
            sz=1+2*self.ymax*circscale+2*circradius # Whatever, something big.
            r=SVGdraw.rect(x=-sz, y=-sz, width=sz*2,height=sz*2,fill='white')
        else:
            r=SVGdraw.rect(x=-1,y=-1,width=self.xmodulus+2,height=self.ymax+2,
                           fill='white')
        plusmask.addElement(r)
        minusmask.addElement(r)
        defs.addElement(plusmask)
        defs.addElement(minusmask)
        svg.addElement(defs)
        maingroup=SVGdraw.group(id="main")
        # I've come to expect them this way up...
        maingroup.attributes['transform']='scale(1,-1) translate(0,%d)'% \
            (-self.ymax)
        svg.addElement(maingroup)
        # Positive slopes and negative slopes.
        plus=SVGdraw.group(id="plus",mask="url(#plusmask)")
        minus=SVGdraw.group(id="minus",mask="url(#minusmask)")
        maingroup.addElement(plus)
        maingroup.addElement(minus)
        circgroup=SVGdraw.group(id="circgroup")
        maingroup.addElement(circgroup)
        strands=self.strands(self.pivots[0])
        circuit=None
        if coloriter is None:
            if len(strands)>1:
                # Multistranded; color it by strand.
                def multicoloriter():
                    counter=0
                    lastcircuit=None
                    while True:
                        if circuit != lastcircuit:
                            lastcircuit=circuit
                            counter+=1
                        yield cols[counter%len(cols)]
                coloriter=multicoloriter()
            else:
                def singlecoloriter(): # for singlestranders!
                    colcounter=0
                    colordiv=len(self.pivots)/6
                    while True:
                        yield cols[int(colcounter/colordiv)%len(cols)]
                        colcounter+=1
                coloriter=singlecoloriter()

            
        for circuit in strands:
            # If there's a startat parameter, and it appears in this list,
            # slosh the list around so it's first
            if startat and startat in circuit:
                ind=circuit.index(startat)
                circuit=circuit[ind:]+circuit[0:ind]
            for i in range(0,len(circuit)):
                here=circuit[i]
                nxt=circuit[(i+1)%len(circuit)]
                col=coloriter.next()
                if type(col)==int: # let iterator generate indexes
                    col=cols[col%len(cols)]
                if circradius:
                    path=[here,nxt]
                else:
#.........这里部分代码省略.........
开发者ID:clsn,项目名称:THexplorer,代码行数:103,代码来源:knots.py


注:本文中的SVGdraw.group方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。