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

📄 rect.py

📁 minimal python variant for small footprint apps like embedded apps
💻 PY
字号:
# Module 'rect'.## Operations on rectangles.# There is some normalization: all results return the object 'empty'# if their result would contain no points.# Exception.#error = 'rect.error'# The empty rectangle.#empty = (0, 0), (0, 0)# Check if a rectangle is empty.#def is_empty(r):	(left, top), (right, bottom) = r	return left >= right or top >= bottom# Compute the intersection or two or more rectangles.# This works with a list or tuple argument.#def intersect(list):	if not list: raise error, 'intersect called with empty list'	if is_empty(list[0]): return empty	(left, top), (right, bottom) = list[0]	for rect in list[1:]:		if is_empty(rect):			return empty		(l, t), (r, b) = rect		if left < l: left = l		if top < t: top = t		if right > r: right = r		if bottom > b: bottom = b		if is_empty(((left, top), (right, bottom))):			return empty	return (left, top), (right, bottom)# Compute the smallest rectangle containing all given rectangles.# This works with a list or tuple argument.#def union(list):	(left, top), (right, bottom) = list[0]	for (l, t), (r, b) in list[1:]:		if not is_empty(((l, t), (r, b))):			if l < left: left = l			if t < top: top = t			if r > right: right = r			if b > bottom: bottom = b	res = (left, top), (right, bottom)	if is_empty(res):		return empty	return res# Check if a point is in a rectangle.#def pointinrect((h, v), ((left, top), (right, bottom))):	return left <= h < right and top <= v < bottom# Return a rectangle that is dh, dv inside another#def inset(((left, top), (right, bottom)), (dh, dv)):	left = left + dh	top = top + dv	right = right - dh	bottom = bottom - dv	r = (left, top), (right, bottom)	if is_empty(r):		return empty	else:		return r# Conversions between rectangles and 'geometry tuples',# given as origin (h, v) and dimensions (width, height).#def rect2geom((left, top), (right, bottom)):	return (left, top), (right-left, bottom-top)def geom2rect((h, v), (width, height)):	return (h, v), (h+width, v+height)

⌨️ 快捷键说明

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