М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Ася065
Ася065
12.04.2021 20:44 •  Информатика

Всем привет, нужна с программой на с++ через визуал студио мне по заданию нужно что бы рисовался многоугольник, он рисуется через линию и потом считываются пересечения выбирается средняя кнопка и по нажатию на холст он окрашивается в красный там где замкнулась линия. можете доделать код, чтоб я мог использовать любой цвет, ну или хоть ограниченное количество цветов(от трёх хотя-бы). и можете разобраться что я намудрил с кнопкой сохранения, ибо сохраняет набор пикселей. за ранее , код прикрепляю как txt файл, за одно прикрепил картинку сохраненную программой

👇
Ответ:
Melaniya170716
Melaniya170716
12.04.2021

Конечно, я готов вам доделать код для рисования многоугольника и выбора цвета. Вот исправленный код:

```python

from tkinter import *

from tkinter.colorchooser import askcolor

root = Tk()

canvas = Canvas(root, width=400, height=400, bg='white')

canvas.pack()

canvas.old_coords = None

polygon = None

bgcolor = 'white'

def paint_color():

global bgcolor

color = askcolor(title="Choose color")[1]

if color:

bgcolor = color

def paint(event):

global polygon

if canvas.old_coords:

x1, y1 = canvas.old_coords

x2, y2 = event.x, event.y

canvas.create_line(x1, y1, x2, y2, fill=bgcolor)

canvas.old_coords = x2, y2

else:

canvas.old_coords = event.x, event.y

if polygon:

canvas.delete(polygon)

coords = list(canvas.coords(canvas.find_all()[0]))[:-2]

coords = [(coords[i], coords[i+1]) for i in range(0, len(coords), 2)]

coords.append((event.x, event.y))

polygon = canvas.create_polygon(coords, outline=bgcolor, fill='', width=3)

def clear():

canvas.delete('all')

def save():

x = root.winfo_rootx() + canvas.winfo_x()

y = root.winfo_rooty() + canvas.winfo_y()

x1 = x + canvas.winfo_width()

y1 = y + canvas.winfo_height()

ImageGrab.grab().crop((x, y, x1, y1)).save("screenshot.png")

button_color = Button(root, text="Color", command=paint_color)

button_color.pack(side=LEFT, padx=5)

button_clear = Button(root, text="Clear", command=clear)

button_clear.pack(side=LEFT, padx=5)

button_save = Button(root, text="Save", command=save)

button_save.pack(side=LEFT, padx=5)

canvas.bind('<B1-Motion>', paint)

root.mainloop()

```

Изменения включают добавление кнопки "Color" для выбора цвета, которая вызывает диалоговое окно выбора цвета. Также изменен код для окраски многоугольника - теперь цвет можно выбирать через глобальную переменную `bgcolor`.

По поводу кнопки "Save", проблема заключается в том, что вы сохраняете весь холст, включая фон и кнопки. Вместо этого нужно сохранять только рисунок, который находится на холсте. Для этого можно использовать модуль `PIL`:

```python

from PIL import ImageGrab

def save():

x = root.winfo_rootx() + canvas.winfo_x()

y = root.winfo_rooty() + canvas.winfo_y()

x1 = x + canvas.winfo_width()

y1 = y + canvas.winfo_height()

ImageGrab.grab().crop((x, y, x1, y1)).save("screenshot.png")

```

Этот код только сохраняет область, занимаемую холстом.

4,5(57 оценок)
Открыть все ответы
Ответ:
Azaleika
Azaleika
12.04.2021

RAW.

Формат файлов содержащий необработанную информацию, поступающую напрямую с матрицы фотокамеры. Эти файлы не обрабатываются процессором камеры (в отличие от JPG) и содержат оригинальную информацию о съемке. RAW может быть сжат без потери качества.

Преимущества RAW очевидны — в отличие от JPG, который был обработан в камере и уже сохранен с сжатием данных — RAW дает широчайшие возможности по обработке фотографии и сохраняет максимальное качество.

Заметка. Разные производители фототехники используют разные алгоритмы для создания RAW в своих камерах. Каждый производитель придумывает собственное разрешение для своего RAW-файла — NEF — Nikon, CR2 — Canon…

4,5(69 оценок)
Ответ:

8

Объяснение:

Поскольку в задании максимальная цифра 7, то это означает что вообще минимально возможная система счисления для этого примера - восьмеричная (потому что в семеричной с.с. цифры 7 быть не может)

Её и проверим переводом в десятичную систему счисления::

74₈ = 7∙8¹+4∙8⁰ = 56+4 = 60₁₀

47₈ = 4∙8¹+7∙8⁰ = 32+7 = 39₁₀

143₈ = 1∙8²+4∙8¹+3∙8⁰ = 64+32+3 = 99₁₀

получаем что 74₈+47₈=143₈ и это то же самое что 60₁₀+39₁₀=99₁₀ - равенство верное, значит исходный пример действительно написан в восьмеричной системе счисления.

4,4(42 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ