Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 8, 2023 16:57:55

Ess
Зарегистрирован: 2023-11-08
Сообщения: 24
Репутация: +  0  -
Профиль   Отправить e-mail  

create_line

Подскажите, create_line принимает в качестве аргументов х и y тип float
т.е так
create_line (0, 0, 0, 999999999) линия отрисуется
а так (если добавить еще одну 9)
create_line (0, 0, 0, 9999999999) линия Не отрисуется
я же нахожусь в размерности типа, ошибки нет, но почему линия не рисуется??
заранее спасибо

Офлайн

#2 Ноя. 9, 2023 00:14:20

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9843
Репутация: +  853  -
Профиль   Отправить e-mail  

create_line

Полный код приведи.



Офлайн

#3 Ноя. 9, 2023 15:16:44

Ess
Зарегистрирован: 2023-11-08
Сообщения: 24
Репутация: +  0  -
Профиль   Отправить e-mail  

create_line

 import tkinter as tk
App=tk.Tk()
canvas      = tk.Canvas(App, highlightthickness=0, width=800, height=600)
def OnCanvasMouse1Down(event):  
    App.title("clicked at: " + str(event.x) +' '+ str(event.y))  
    canvas.create_line(event.x, event.y, event.x, 99999999 , fill='green') #зеленая линия будет отрисована
    canvas.create_line(event.x, event.y, event.x, 9999999999, fill='red') # красная уже нет
canvas.bind("<Button-1>", OnCanvasMouse1Down)

т.е мне просто интересно при клике мышкой по канве, удалить y или х координату, т.е. фактически линия должна быть

Офлайн

#4 Ноя. 10, 2023 05:38:59

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9843
Репутация: +  853  -
Профиль   Отправить e-mail  

create_line

У меня рисует красно-зелёные линии.

Такой код запускаю

  
#!/usr/bin/env python3
 
import tkinter as tk
 
App=tk.Tk()
canvas      = tk.Canvas(App, highlightthickness=0, width=800, height=600)
canvas.pack()
 
def OnCanvasMouse1Down(event):  
    App.title("clicked at: " + str(event.x) +' '+ str(event.y))  
    canvas.create_line(event.x, event.y, event.x, 99999999 , fill='green') #зеленая линия будет отрисована
    canvas.create_line(event.x, event.y, event.x, 9999999999, fill='red') # красная уже нет
 
canvas.bind("<Button-1>", OnCanvasMouse1Down)
App.mainloop()



Офлайн

#5 Ноя. 10, 2023 07:57:27

Ess
Зарегистрирован: 2023-11-08
Сообщения: 24
Репутация: +  0  -
Профиль   Отправить e-mail  

create_line

py.user.next
У меня рисует красно-зелёные линии.

Подскажите, я не вижу красную линию, в чем может быть проблема??? если я уменьшаю значение координаты то красная линия отрисовывается. но при таком значении нет Возможно это как то зависит от операционной системы (я проверил на win 10, 8, 7) результат один и тоже красную линию не видать

и просто интересно , а какое графическое ядро использует pyton??? например на плюсах или делфи я мог выбирать - Gdi, gdi+, direct итд..

заранее спасибо!

Отредактировано Ess (Ноя. 10, 2023 07:59:26)

Офлайн

#6 Ноя. 11, 2023 02:42:51

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9843
Репутация: +  853  -
Профиль   Отправить e-mail  

create_line

Ess
Возможно это как то зависит от операционной системы
Может, и зависит. У меня Linux уже лет двадцать почти. А tkinter на каждой системе реализован по-своему. У него только интерфейс одинаковый везде, а реализации просто похожи на друг на друга по поведению.

Ess
и просто интересно , а какое графическое ядро использует pyton?
Он использует то, что предоставляет операционная система через свои библиотеки. Если что-то не будет установлено, он тебе скажет “установи это в систему”.

Ess
например на плюсах или делфи я мог выбирать
В питоне когда тебе надо что-то, ты ставишь дополнительные пакеты в систему через pip и потом их импортируешь и они подключаются. Так питон может проникать в эти установленные компоненты и использовать их для себя.



Офлайн

#7 Ноя. 11, 2023 11:16:36

Ess
Зарегистрирован: 2023-11-08
Сообщения: 24
Репутация: +  0  -
Профиль   Отправить e-mail  

create_line

py.user.next
Он использует то, что предоставляет операционная система через свои библиотеки
тогда не совсем понятно, windows использует gdi, но для отрисовки оно принимает переменную целую в 32 бита т.е 2^31, питон же передает переменную дробную и намного большего размера…..

я потому свой вопрос и задал, т.е если я передам координату в размерности от -2147483648 до 2147483647 то винда отрисует корректно (как она и должна это делать), но если я изменю значение на +-1 то винда генерирует ошибку выцхода за размерность типа, но пайтон это глотает и даже блокирует ошибку операционной системы. Он просто ничего не рисует ((

мне просто было интересно ))

Отредактировано Ess (Ноя. 11, 2023 11:21:03)

Офлайн

#8 Ноя. 11, 2023 12:28:06

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

create_line

Длина зависит от разрядности системы у вас везде х64?



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#9 Ноя. 11, 2023 13:12:11

Ess
Зарегистрирован: 2023-11-08
Сообщения: 24
Репутация: +  0  -
Профиль   Отправить e-mail  

create_line

ZerG
Длина зависит от разрядности системы у вас везде х64?
да

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version