Skip to content

Commit e132a29

Browse files
authored
Merge pull request petercorke#130 from petercorke/micah-dev
Quick temporary fixes for 2D/3D grid updating/scaling
2 parents 6fb43f0 + f069ac0 commit e132a29

File tree

3 files changed

+24
-8
lines changed

3 files changed

+24
-8
lines changed

graphics/graphics_canvas.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -740,7 +740,7 @@ def __init__(self, height=360, width=640, title='', caption='', grid=True):
740740
# Create the grid, and display if wanted
741741
self.__graphics_grid = GraphicsGrid(self.scene)
742742
# Toggle grid to 2D
743-
self.__graphics_grid.toggle_2d_3d()
743+
# self.__graphics_grid.toggle_2d_3d()
744744
# Lock the grid
745745
# self.__graphics_grid.set_relative(False)
746746
# Turn off grid if applicable
@@ -750,6 +750,7 @@ def __init__(self, height=360, width=640, title='', caption='', grid=True):
750750
# Reset the camera to known spot
751751
self.__reset_camera()
752752
self.__graphics_grid.update_grid()
753+
self.__graphics_grid.toggle_2d_3d()
753754

754755
#######################################
755756
# Canvas Management

graphics/graphics_grid.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -303,9 +303,15 @@ def update_grid(self):
303303
self.camera_axes = new_camera_axes
304304

305305
distance_from_center = mag(self.__scene.center - self.__scene.camera.pos)
306-
new_scale = round(distance_from_center / 30.0, 1)
306+
if self.__is_3d:
307+
new_scale = round(distance_from_center / 30.0, 1)
308+
else:
309+
new_scale = round(distance_from_center / 15.0, 1)
307310
if not new_scale == self.__scale:
308311
self.set_scale(new_scale)
312+
if not self.__is_3d:
313+
self.__is_3d = True
314+
self.toggle_2d_3d()
309315

310316
# If camera is different to previous: update
311317
if (not new_camera_axes.equals(old_camera_axes)) or (not new_camera_pos.equals(old_camera_pos)):

graphics/graphics_text.py

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -143,14 +143,20 @@ def update_grid_numbers(focal_point, numbers_list, num_squares, scale, is_3d, sc
143143
# min = -num_squares or 0, around the default position
144144
# max = +num_squares or 0, around the default position
145145
# e.g. at the origin, for negative axes: -10 -> 0, positive axes: 0 -> 10
146-
min_x_coord = x_origin + int(-(num_squares / 2) + (sign(camera_axes.x) * -1) * (num_squares / 2)) * scale
147-
max_x_coord = x_origin + int((num_squares / 2) + (sign(camera_axes.x) * -1) * (num_squares / 2)) * scale
146+
min_x_coord = round(x_origin + (-(num_squares / 2) +
147+
(sign(camera_axes.x) * -1) * (num_squares / 2)) * scale, 2)
148+
max_x_coord = round(x_origin + ((num_squares / 2) +
149+
(sign(camera_axes.x) * -1) * (num_squares / 2)) * scale, 2)
148150

149-
min_y_coord = y_origin + int(-(num_squares / 2) + (sign(camera_axes.y) * -1) * (num_squares / 2)) * scale
150-
max_y_coord = y_origin + int((num_squares / 2) + (sign(camera_axes.y) * -1) * (num_squares / 2)) * scale
151+
min_y_coord = round(y_origin + (-(num_squares / 2) +
152+
(sign(camera_axes.y) * -1) * (num_squares / 2)) * scale, 2)
153+
max_y_coord = round(y_origin + ((num_squares / 2) +
154+
(sign(camera_axes.y) * -1) * (num_squares / 2)) * scale, 2)
151155

152-
min_z_coord = z_origin + int(-(num_squares / 2) + (sign(camera_axes.z) * -1) * (num_squares / 2)) * scale
153-
max_z_coord = z_origin + int((num_squares / 2) + (sign(camera_axes.z) * -1) * (num_squares / 2)) * scale
156+
min_z_coord = round(z_origin + (-(num_squares / 2) +
157+
(sign(camera_axes.z) * -1) * (num_squares / 2)) * scale, 2)
158+
max_z_coord = round(z_origin + ((num_squares / 2) +
159+
(sign(camera_axes.z) * -1) * (num_squares / 2)) * scale, 2)
154160

155161
x_coords = arange(min_x_coord, max_x_coord + scale, scale)
156162
y_coords = arange(min_y_coord, max_y_coord + scale, scale)
@@ -238,6 +244,9 @@ def update_grid_numbers(focal_point, numbers_list, num_squares, scale, is_3d, sc
238244
numbers_list[index].height = get_text_size(scene)
239245
index += 1
240246

247+
if not is_3d:
248+
return
249+
241250
# Z plane
242251
for z_pos in z_coords:
243252
# Draw the corresponding unit number at each x coordinate

0 commit comments

Comments
 (0)