X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b2f6eb0606be607c176121ad4ae272e3112f44eb..db679b8c836e69c111cdc31e62cf92cebe4f938f:/wxPython/wx/lib/ogl/_oglmisc.py diff --git a/wxPython/wx/lib/ogl/_oglmisc.py b/wxPython/wx/lib/ogl/_oglmisc.py index 42a79b2b15..db2185c832 100644 --- a/wxPython/wx/lib/ogl/_oglmisc.py +++ b/wxPython/wx/lib/ogl/_oglmisc.py @@ -11,7 +11,6 @@ # Licence: wxWindows license #---------------------------------------------------------------------------- -from __future__ import division import math import wx @@ -79,28 +78,28 @@ LINE_ALIGNMENT_NONE = 0 # Interpret %n and 10 or 13 as a new line. def FormatText(dc, text, width, height, formatMode): i = 0 - word="" + word = "" word_list = [] end_word = False new_line = False - while i0: + if len(buffer) > 0: string_list.append(buffer) - buffer="" + buffer = "" else: if len(buffer): - buffer+=" " + buffer += " " buffer += s x, y = dc.GetTextExtent(buffer) # Don't fit within the bounding box if we're fitting # shape to contents - if (x>width) and not (formatMode & FORMAT_SIZE_TO_CONTENTS): + if (x > width) and not (formatMode & FORMAT_SIZE_TO_CONTENTS): # Deal with first word being wider than box if len(oldBuffer): string_list.append(oldBuffer) @@ -154,8 +153,8 @@ def GetCentredTextExtent(dc, text_list, xpos = 0, ypos = 0, width = 0, height = max_width = 0 for line in text_list: - current_width, char_height = dc.GetTextExtent(line) - if current_width>max_width: + current_width, char_height = dc.GetTextExtent(line.GetText()) + if current_width > max_width: max_width = current_width return max_width, len(text_list) * char_height @@ -176,31 +175,31 @@ def CentreText(dc, text_list, xpos, ypos, width, height, formatMode): for line in text_list: current_width, char_height = dc.GetTextExtent(line.GetText()) widths.append(current_width) - if current_width>max_width: + if current_width > max_width: max_width = current_width max_height = len(text_list) * char_height if formatMode & FORMAT_CENTRE_VERT: - if max_height(val2 - tol) and \ - val2<(val1 + tol) and val2>(val1 - tol) + return val1 < (val2 + tol) and val1 > (val2 - tol) and \ + val2 < (val1 + tol) and val2 > (val1 - tol) def FindEndForBox(width, height, x1, y1, x2, y2): - xvec = [x1 - width / 2, x1 - width / 2, x1 + width / 2, x1 + width / 2, x1 - width / 2] - yvec = [y1 - height / 2, y1 + height / 2, y1 + height / 2, y1 - height / 2, y1 - height / 2] + xvec = [x1 - width / 2.0, x1 - width / 2.0, x1 + width / 2.0, x1 + width / 2.0, x1 - width / 2.0] + yvec = [y1 - height / 2.0, y1 + height / 2.0, y1 + height / 2.0, y1 - height / 2.0, y1 - height / 2.0] return FindEndForPolyline(xvec, yvec, x2, y2, x1, y1) @@ -253,19 +252,19 @@ def CheckLineIntersection(x1, y1, x2, y2, x3, y3, x4, y4): k_line = 1.0 # Check for parallel lines - if denominator_term<0.005 and denominator_term>-0.005: - line_constant=-1.0 + if denominator_term < 0.005 and denominator_term > -0.005: + line_constant = -1.0 else: line_constant = float(numerator_term) / denominator_term # Check for intersection - if line_constant<1.0 and line_constant>0.0: + if line_constant < 1.0 and line_constant > 0.0: # Now must check that other line hits - if (y4 - y3)<0.005 and (y4 - y3)>-0.005: + if (y4 - y3) < 0.005 and (y4 - y3) > -0.005: k_line = (x1 - x3 + line_constant * (x2 - x1)) / (x4 - x3) else: k_line = (y1 - y3 + line_constant * (y2 - y1)) / (y4 - y3) - if k_line >= 0 and k_line<1: + if k_line >= 0 and k_line < 1: length_ratio = line_constant else: k_line = 1 @@ -285,13 +284,13 @@ def FindEndForPolyline(xvec, yvec, x1, y1, x2, y2): lastx = xvec[i] lasty = yvec[i] - if line_ratio1: + elif abs(float(dy) / dx) > 1: point2[0] = point1[0] else: - point2[1] = point1[0] + point2[1] = point1[1] def GetPointOnLine(x1, y1, x2, y2, length): l = math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1)) - if l<0.01: + if l < 0.01: l = 0.01 i_bar = (x2 - x1) / l j_bar = (y2 - y1) / l - return -length * i_bar + x2,-length * j_bar + y2 + return -length * i_bar + x2, -length * j_bar + y2 def GetArrowPoints(x1, y1, x2, y2, length, width): l = math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1)) - if l<0.01: + if l < 0.01: l = 0.01 i_bar = (x2 - x1) / l j_bar = (y2 - y1) / l - x3=-length * i_bar + x2 - y3=-length * j_bar + y2 + x3 = -length * i_bar + x2 + y3 = -length * j_bar + y2 - return x2, y2, width*-j_bar + x3, width * i_bar + y3,-width*-j_bar + x3,-width * i_bar + y3 + return x2, y2, width * -j_bar + x3, width * i_bar + y3, -width * -j_bar + x3, -width * i_bar + y3 def DrawArcToEllipse(x1, y1, width1, height1, x2, y2, x3, y3): - a1 = width1 / 2 - b1 = height1 / 2 + a1 = width1 / 2.0 + b1 = height1 / 2.0 # Check that x2 != x3 - if abs(x2 - x3)<0.05: + if abs(x2 - x3) < 0.05: x4 = x2 - if y3>y2: + if y3 > y2: y4 = y1 - math.sqrt((b1 * b1 - (((x2 - x1) * (x2 - x1)) * (b1 * b1) / (a1 * a1)))) else: y4 = y1 + math.sqrt((b1 * b1 - (((x2 - x1) * (x2 - x1)) * (b1 * b1) / (a1 * a1)))) @@ -387,16 +386,16 @@ def DrawArcToEllipse(x1, y1, width1, height1, x2, y2, x3, y3): E = (A + B) F = (C - (2 * A * x1) - (2 * B * x2)) G = ((A * x1 * x1) + (B * x2 * x2) - (C * x2) + D - 1) - H = ((y3 - y2) / (x2 - x2)) + H = (float(y3 - y2) / (x3 - x2)) K = ((F * F) - (4 * E * G)) if K >= 0: # In this case the line intersects the ellipse, so calculate intersection if x2 >= x1: - ellipse1_x = ((F*-1) + math.sqrt(K)) / (2 * E) + ellipse1_x = ((F * -1) + math.sqrt(K)) / (2 * E) ellipse1_y = ((H * (ellipse1_x - x2)) + y2) else: - ellipse1_x = (((F*-1) - math.sqrt(K)) / (2 * E)) + ellipse1_x = (((F * -1) - math.sqrt(K)) / (2 * E)) ellipse1_y = ((H * (ellipse1_x - x2)) + y2) else: # in this case, arc does not intersect ellipse, so just draw arc