5000 / 1672 / 409
Регистрация: 25.04.2010
Сообщений: 4,619
Записей в блоге: 2
1

Рисовалка для ленивых

28.04.2012, 06:04. Показов 5554. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Очень часто вижу здесь темы с просьбами чего-либо нарисовать.
Т.к. все знают, что это достаточно просто, просят писать код вручную,
но не все "ленивые" знают, что это долгая нудятина - сидеть и считать координаты.
Не стану обобщать, короче говоря процесс не доставляет. Так вот вчера пришла
ко мне идея, а почему бы слегка не автоматизировать данный процесс, за сегодня
склепал такую вот небольшую утилитку. Прога - самая элементарщина, наверняка
существуют во много раз круче, но искать было лень.
Так вот смысл в том, что часть работы можно очень быстро делать через эту прогу.

Основные функции:
Заданным цветом
  • Рисует линию
  • Прямоугольник
  • Окружность
и сохраняет в *.BAS* файл.

Управление:
TAB - основное меню (Вкл/Выкл)
ENTER - Сохранить в файл RIS_01.BAS
SPACE - Загрузить из файл RIS_01.BAS
При загрузке понимает только LINE с координатами + опцией B (прямоугольник) и
CIRCLE с координатами, радиусом и цветом.
ESC - выход из программы, а при рисовании - отмена текущего примитива.
BACKSPACE - Удаление последнего нарисованного примитива.
Код без всяких оптимизаций на голом бейсике, тут уже кто хочет допишет.
По мере наличия свободного времени буду увеличивать функционал.
Скриншоты:
Рисовалка для ленивых
Рисовалка для ленивых

Пример:
Вот такой файлик сгенерил мой редактор, всё рисовалось вручную буквально
за минуту:
> Код <
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
SCREEN 9
    LINE (54, 66)-(478, 241), 6, B
    LINE (66, 224)-(85, 173), 14 
    LINE (85, 173)-(111, 139), 14 
    LINE (111, 139)-(149, 116), 14 
    LINE (149, 116)-(194, 101), 14 
    LINE (194, 101)-(272, 93), 14 
    LINE (272, 93)-(384, 92), 14 
    CIRCLE (523, 141), 31, 7 
    CIRCLE (273, 284), 34, 7 
    CIRCLE (269, 32), 35, 7 
    CIRCLE (331, 182), 63, 7 
    CIRCLE (244, 213), 33, 7 
    CIRCLE (232, 159), 42, 7 
    LINE (457, 308)-(552, 220), 2 
    LINE (552, 220)-(583, 181), 2 
    LINE (583, 181)-(602, 137), 2 
    LINE (602, 137)-(608, 89), 2 
    LINE (608, 89)-(608, 56), 2 
    LINE (608, 56)-(323, 56), 2 
    LINE (82, 267)-(74, 292), 2 
    LINE (74, 292)-(69, 294), 2 
    LINE (69, 294)-(65, 293), 2 
    LINE (65, 293)-(64, 290), 2 
    LINE (76, 271)-(68, 271), 2 
    LINE (68, 271)-(66, 269), 2 
    LINE (66, 269)-(67, 266), 2 
    LINE (67, 266)-(70, 262), 2 
    LINE (70, 262)-(78, 260), 2 
    LINE (78, 260)-(89, 260), 2 
    LINE (89, 260)-(98, 261), 2 
    LINE (98, 261)-(102, 267), 2 
    LINE (102, 267)-(99, 271), 2 
    LINE (99, 271)-(88, 272), 2 
    LINE (76, 292)-(92, 283), 2 
    LINE (92, 283)-(88, 291), 2 
    LINE (88, 291)-(91, 294), 2 
    LINE (91, 294)-(95, 292), 2 
    LINE (95, 292)-(101, 285), 2 
    LINE (102, 283)-(99, 293), 2 
    LINE (100, 293)-(105, 292), 2 
    LINE (105, 292)-(111, 287), 2 
    LINE (111, 287)-(120, 283), 2 
    LINE (119, 283)-(125, 285), 2 
    LINE (124, 285)-(121, 284), 2 
    LINE (121, 284)-(115, 286), 2 
    LINE (115, 286)-(115, 290), 2 
    LINE (115, 290)-(121, 292), 2 
    LINE (121, 292)-(123, 291), 2 
    LINE (129, 283)-(128, 292), 2 
    LINE (128, 292)-(133, 293), 2 
    LINE (133, 293)-(140, 287), 2 
    LINE (140, 285)-(135, 310), 2 
    LINE (135, 310)-(129, 310), 2 
    LINE (129, 310)-(131, 301), 2 
    LINE (131, 301)-(146, 284), 2 
    LINE (147, 281)-(145, 291), 2 
    LINE (146, 287)-(152, 287), 2 
    LINE (153, 281)-(151, 290), 2 
    LINE (151, 290)-(153, 292), 2 
    LINE (153, 292)-(158, 291), 2 
    LINE (158, 291)-(158, 289), 2 
    CIRCLE (167, 287), 8, 2 
    LINE (172, 291)-(185, 283), 2 
    LINE (186, 281)-(182, 292), 2 
    LINE (184, 286)-(193, 283), 2 
    LINE (193, 283)-(195, 285), 2 
    LINE (188, 285)-(191, 285), 2 
    LINE (191, 285)-(190, 292), 2 
    LINE (190, 292)-(194, 291), 2 
    LINE (194, 291)-(197, 289), 2 
    LINE (59, 296)-(198, 296), 2 
    LINE (60, 300)-(200, 300), 2 
    LINE (41, 255)-(218, 313), 9, B
    LINE (293, 218)-(368, 146), 4 
    LINE (372, 216)-(286, 151), 4 
    LINE (221, 196)-(265, 230), 4 
    LINE (260, 193)-(227, 232), 4 
    LINE (227, 130)-(240, 188), 12 
    LINE (192, 168)-(271, 152), 12 
WHILE INKEY$ = "": WEND


В архиве исходник и 2 *.EXE* файла.

P.S: На некоторых конфигурациях возникает проблема с вертикальной синхронизацией,
поэтому в архиве 2 *.EXE* файла один с VSync'ом, второй - без, исходник правьте сами.
Вложения
Тип файла: zip Redact Alfa v1.0_.zip (94.5 Кб, 193 просмотров)
11
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.04.2012, 06:04
Ответы с готовыми решениями:

Для ленивых...
Прошу тех у кого есть вопросы или нужно решение задачки пишите в этот топик:rtfm:

Рисовалка для сайта
Здравствуйте.Пишу сайт на asp.net mvc 4,нужно реализовать некое-подобие доски для рисования для...

Простенькая рисовалка для чертежей
Ищу простенькую рисовалку для чертежей и иллюстраций. Нужно рисовать что-то похожее на чертежи в...

Наплыв ленивых новичков в VB форуме...
В самом форуме такой топик заводить не принято, ну а здесь можно. В последнее время, а точнее...

6
5000 / 1672 / 409
Регистрация: 25.04.2010
Сообщений: 4,619
Записей в блоге: 2
05.05.2012, 09:11  [ТС] 2
Сделал небольшой апгрейд рисовалки, прога теперь в стадии бета, т.к. основной функционал готов.

Архив с программой:
Архив содержит 2 EXE файла(c Vsync и без) и исходник.
Загрузить: Redact Beta v1.15.zip

Основные функции:

Заданным цветом:
  • Рисует линию
  • Прямоугольник
  • Окружность
  • Закрашенный прямоугольник
  • Эллипс

И сохраняет векторную графику в *.BAS* файл в виде кода.
Также программа сохраняет бекап файл(BACKUP.BAS), после добавления каждого примитива.

Управление:
TAB - основное меню (Вкл/Выкл)
ENTER - Сохранить в файл RIS_01.BAS
SPACE - Загрузить из файла RIS_01.BAS
При загрузке понимает LINE с координатами + опциями B и F (прямоугольник, закрас),
CIRCLE с координатами, радиусом, цветом, углами старта/конца и аспектом.
ESC - выход из программы, а при рисовании - отмена текущего примитива.
BACKSPACE - Удаление последнего нарисованного примитива.
- подвинуть последний примитив на пиксель вверх
- подвинуть последний примитив на пиксель вниз
- подвинуть последний примитив на пиксель влево
- подвинуть последний примитив на пиксель вправо
Скриншот:
Рисовалка для ленивых


Планы
Дальнейший апгрейд подразумевает добавление:
  • Точек закраса области и парсинг команды PAINT из *.BAS*
  • Команда выделения примитивов и более удобное их передвижение
  • Экспорт в другие компилеры (например в TURBO PASCAL)
  • Сохранение в *.BMP*, ибо основополагающий формат.

Что-то из этого будет реализовано, что-то нет, всё зависит от свободного времени
и желания кодить эту жалкую прогу.


Если найдёте баги, обязательно напишите в эту тему, что смогу - пофиксю.
4
5000 / 1672 / 409
Регистрация: 25.04.2010
Сообщений: 4,619
Записей в блоге: 2
10.05.2012, 15:33  [ТС] 3
Лучший ответ Сообщение было отмечено как решение

Решение

Всех ещё раз приветствую!
Программа была существенно доработана и перешла в стадию пре релиз.

Архив с программой:
Загрузить: Redact PreRelease v1.4.zip

Архив содержит 2 EXE файла(c Vsync и без) и исходник.
Краткое описание:
Собственно было выполнено то, что заявлено в планах. Теперь программа может
сохранять рисунок и скриншоты в *.BMP*, экспортировать примитивы в среду
Turbo Pascal. Добавлена функция обводки для перемещения примитивов и поддержка
установки точек закраса + парсинг PAINT. Но обо всём подробнее:
Основные функции:
Программа имеет следующие режимы работы:
  • Рисование линии
  • Рисование прямоугольника
  • Рисование окружности
  • Рисование закрашенного прямоугольника
  • Рисование эллипса
  • Монтирование точки закрашивания области
  • Режим выделения примитивов и их передвижения
  • Режим просмотра полностью построенной(+PAINT) картинки

По умолчанию при редактировании программа не производит закраску областей(PAINT).
После каждого установленного примитива программа сохраняет бекап файл(BACKUP.BAS).
Основной входной-выходной формат программы: *.BAS*
Дополнительные форматы для экспорта: *.PAS*, *.BMP*
Управление:
TAB - основное меню (Вкл/Выкл)
В меню опции выбираются ЛКМ, цвета - ЛКМ и ПКМ
ENTER - Сохранить в файл RIS_01.BAS и RIS_01.PAS
SPACE - Загрузить из файла RIS_01.BAS
При загрузке понимает LINE с координатами + опциями B и F (прямоугольник, закрас),
CIRCLE с координатами, радиусом, цветом, углами старта/конца и аспектом.
Определяет PAINT с 2-мя параметрами: цветом закраски и цветом границы.
ESC - выход из программы, а при рисовании - отмена текущего примитива.
BACKSPACE - Удаление последнего нарисованного примитива.
- подвинуть последний примитив на пиксель в соотв. клавише сторону

F5 - Режим просмотра полностью построенной картинки
F6 - Сохранить полностью построенное изображение в файл RIS_01.BMP
F12 - Скриншот редактора в файл REDACT.BMP

В режиме обводки(выбрана обводка):
ЛКМ(нажать и удерживать) - начать выделение, отпустить ЛКМ - закончить выделение.
ПКМ(нажать и удерживать) - перенос объекта мышью.
- подвинуть весь объект на пиксель в соотв. клавише сторону
В режиме рисования(выбран примитив):
ЛКМ(нажать и удерживать) - позиционирование примитива
Скриншоты:
Рисовалка для ленивых
Рисовалка для ленивых
9
5000 / 1672 / 409
Регистрация: 25.04.2010
Сообщений: 4,619
Записей в блоге: 2
13.05.2012, 10:16  [ТС] 4
Мысли: Если дальше буду апгрейдить прогу по каким-либо параметрам,
уберу поддержку экспорта в турбо паскаль, меня убедили в отсутствии юзабилити.
Бесполезные функции буду нещадно обрезать, в программе должны остаться только
нужные функции.
3
0 / 0 / 0
Регистрация: 29.01.2013
Сообщений: 8
29.01.2013, 15:38 5
добрый день я бы хотел узнать как сделана сама программа ее начальная версия если можно *код*
0
140 / 130 / 127
Регистрация: 27.09.2012
Сообщений: 634
25.11.2013, 20:34 6
а как рисовать то?мышкой?

Добавлено через 22 минуты
программа класс
0
5000 / 1672 / 409
Регистрация: 25.04.2010
Сообщений: 4,619
Записей в блоге: 2
26.11.2013, 22:29  [ТС] 7
программа класс
Тут не самая последняя версия, ищем в гугле по "Утилита Redact v1.4", там ещё пачка плюшек.
Не хватило мотивации на эксклюзивы в разные места, простите квита. А паскалевики вообще
ссылки срезали - ну пущай руками рисуют на листике, бугага)))
4
26.11.2013, 22:29
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.11.2013, 22:29
Помогаю со студенческими работами здесь

Как подсчитать дисперсию с помощью ленивых вычислений?
Всем привет и хорошего настроения!) Интересует вопрос - как подсчитать дисперсию с помощью ленивых...

Организовать бесконечное выполнение функции с помощью ленивых вычислений
Привет всем) как можно организовать в джаве бесконечное выполнение функции ∑ (a+b)/n с...

Рисовалка
Здравствуйте, мне нужно написать простенькую рисовалку на htm5+js. Я сделал тут, но пр нажатии...

Рисовалка в вб
Всем привет народ! Задали мне сделать рисовалку в vb, вот такую: Создать простой графический...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru