Skip to content

Commit 7a0f346

Browse files
committed
mandelbrot app: draw crosshairs and coordinates of mouse
1 parent 4d36acd commit 7a0f346

File tree

1 file changed

+26
-2
lines changed

1 file changed

+26
-2
lines changed

software/mandelbrot-app.py

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ def draw_pixel():
187187

188188
cr.rectangle(x, y, 1.5, 1.5)
189189
cr.fill()
190-
if pixel_count % 500 == 0:
190+
if pixel_count % 1000 == 0:
191191
self.canvas.queue_draw()
192192

193193
return False
@@ -254,10 +254,34 @@ def onCanvasButtonPress(self, canvas, event):
254254
center_x.set_text(str(x))
255255
center_y.set_text(str(y))
256256

257+
crosshairs = None
258+
259+
def onCanvasMotion(self, canvas, event):
260+
step = fix2float(self.view.step)
261+
x = fix2float(self.view.corner_x) + (event.x * step)
262+
y = fix2float(self.view.corner_y) + ((self.view.height - event.y) * step)
263+
self.crosshairs = [(event.x, event.y), (x,y)]
264+
canvas.queue_draw()
265+
257266
def onDraw(self, canvas: DrawingArea, cr: cairo.Context):
258-
#code.interact(local=locals())
259267
cr.set_source_surface(self.surface, 0, 0)
260268
cr.paint()
269+
if not self.crosshairs is None:
270+
x, y = self.crosshairs[0]
271+
cr.set_source_rgb(1, 1, 1)
272+
cr.set_line_width(1)
273+
cr.move_to(x, 0)
274+
cr.line_to(x, self.view.height)
275+
cr.move_to(0, y)
276+
cr.line_to(self.view.width, y)
277+
cr.stroke()
278+
279+
cr.set_font_size(20)
280+
cr.move_to(20, 20)
281+
cr.show_text(f"x: {str(self.crosshairs[1][0])}")
282+
cr.move_to(20, 40)
283+
cr.show_text(f"y: {str(self.crosshairs[1][1])}")
284+
261285

262286
builder = Gtk.Builder()
263287
builder.add_from_file("mandelbrot-client-gui.glade")

0 commit comments

Comments
 (0)