Форум программистов, компьютерный форум, киберфорум
Бета-тестирование
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.52/25: Рейтинг темы: голосов - 25, средняя оценка - 4.52
1 / 2 / 0
Регистрация: 30.06.2019
Сообщений: 30

Визуал Бейсик 6 Редактор для художественного рисования

30.06.2019, 14:22. Показов 6053. Ответов 56

Сделал графический редактор для художественного рисования.
Среда программирования VB6.
Скачать программу и ознакомиться с ней можно здесь - http://yadi.sk/d/bd3PVYUko3qdEA
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.06.2019, 14:22
Ответы с готовыми решениями:

Как разбить изображение на brg и каждый цвет на 8 градаций?
Вопрос? как разбить изображение на brg и каждый цвет на 8 градаций? Чтоб получилось 8*3=32 изображениям по градациям...

Как запрограммировать прокручивание формы в визуал бейсик 6.0?
Хочу создать игру, в которой игрок передвигается по миру, вроде как в "Герои меча и магии". Есть мысль сделать, чтобы сам герой не...

Диалект языка Бейсик - Spectrum-Бейсик
Приветствую всех. Недавно в сети нашла книгу: "Как написать игру для ZX Spectrum"/ А. Купальцевич, И. Капульцевич, А. Евдокимов. - 2-е...

56
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
05.08.2019, 14:15
Цитата Сообщение от ДмитрийМаштаков Посмотреть сообщение
в обычной программе Паинт
В этой обычной программе есть вроде как неплохая кисть Акварель? Получше Вашей получается результат.
Название: di-ITI3G3.png
Просмотров: 136

Размер: 54.0 Кб
По крайней мере рисовать в Паинте как то привычнее и более правдоподобнее что ли.
Но Ваш проект мне тоже решительно нравится нестандартным подходом.
Особенно понравился аналог Spin Controls.
Название: di-ET5HHS.png
Просмотров: 131

Размер: 1.2 Кб
Ещё бы на нижней кнопке нарисовать подсказку, в виде стрелочки вниз, было бы идеально.
1
1 / 2 / 0
Регистрация: 30.06.2019
Сообщений: 30
05.08.2019, 16:55  [ТС]
Знаете, я про акварельную кисть в Паинте не знал. Но я пользуюсь старым Паинтом, там такой кисти нет.
У меня Кисть №4 аналог такой кисти, если вектор затекания установить в ноль.
Однако кисть Паинта не проявляет затекающих свойств и скорость утолщения её не регулируется. Прозрачность тоже не регулируется. Кроме того, я не нашёл в Паинте кнопку Cls. Может, плохо искал?
=======
А не поможете мне в такой проблеме:
Программируя анимацию, я использую такие конструкции -

Public Sub C49(T As Integer, I As Integer) 'прокрутка анимации
If TS(I) > 0 Then
Select Case I
Case 1: Form1.Picture1.Picture = Form1.Picture9.Picture: DoEvents: Sleep (T + TS(I)) * 30
Case 2: Form1.Picture1.Picture = Form1.Picture10.Picture: DoEvents: Sleep (T + TS(I)) * 30
Case 3: Form1.Picture1.Picture = Form1.Picture11.Picture: DoEvents: Sleep (T + TS(I)) * 30
и так далее... а вот завершение этой простыни -
Case 41: Form1.Picture1.Picture = Form1.Picture49.Picture: DoEvents: Sleep (T + TS(I)) * 30
Case 42: Form1.Picture1.Picture = Form1.Picture50.Picture: DoEvents: Sleep (T + TS(I)) * 30
End Select: End If
End Sub

Вопрос - а нельзя ли конкретный номер Form1.Picture49.Picture проиндексировать?
Было бы хорошо писать так - Form1.Picture(I+8).Picture

и как это делается, если делается вообще. У меня таких простыночек в программе 6. Больше, как оказалось, не надо.
Но в принципе. Нельзя ли избавиться от них?
Сейчас у меня в программе 42 кадра для рисунков анимации, умножить на 10 папок, куда можно поместить отснятый материал, чтобы организовать в будущем из них сплошное кино, длительностью пару минут.

Добавлено через 11 минут
Насчёт подсказки на нижней кнопке я думал, но у меня много таких кнопок, совершенно одинаковые подсказки тогда зря мельтешить перед глазами будут. И я подумал - пользователь понажимает кнопочки, и разберётся с ними сам.

Добавлено через 15 минут
"стрелочки вниз" нет в шрифте, или VB6 подобные символы отвергает. можно только буквы. На одной из кнопок я поместил букву v, как указатель направления вниз. Делать кнопки с графическими картинками - возни много. Поэтому я текстом обхожусь. Цвет окрашивания кнопок тоже очень помогает. И как сигнал во время работы, просто, чтобы пользователь не перепутал кнопки. Если "ландшафт" интерфейса абсолютно ровный, то это нехорошо.
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
05.08.2019, 18:21
Цитата Сообщение от ДмитрийМаштаков Посмотреть сообщение
Вопрос - а нельзя ли конкретный номер Form1.Picture49.Picture проиндексировать?
Можно. Только это делается на стадии создания. Готовые Picture уже переделать нельзя.
Вы должны создать первый Picture, пусть он будет Picture7. Потом его надо скопировать(ПКМ через контекст меню) и сразу вставить.
VB6 спросит, а не создать ли нам массив таких Picture? Вы отвечаете утвердительно.
И после этого вставляете свои 49 Picture подряд. Они все будут называться Picture7(Index)
Процедура анимации на 50 кадров будет выглядеть так:

Visual Basic
1
2
3
4
5
6
Private Sub Anima(T As Integer)
For I = 0 To 49
      Picture1.Picture = Picture7(I).Picture
      DoEvents: Sleep (T * 30)
Next
End Sub
Пример реализации:
Вложения
Тип файла: zip __vbANI.zip (12.0 Кб, 1 просмотров)
1
1 / 2 / 0
Регистрация: 30.06.2019
Сообщений: 30
05.08.2019, 19:03  [ТС]
О, большое спасибо.
У меня в планах сделать для анимации специальную программу. Но это когда некий опыт в достаточно простой анимации приобрету. Тогда попробую.
Посмотрите клип о рисовании морской волны - http://youtu.be/DM-Bu9brVDE
Только что разместил его.
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
05.08.2019, 21:25
Цитата Сообщение от ДмитрийМаштаков Посмотреть сообщение
клип о рисовании морской волны
Довольно интересно. В Вашей программе много различных "фишек", которые сложно применить интуитивно.
Вам нужен обширный файл помощи, или на каждую опцию видео снимать.
1
Эксперт JSЭксперт HTML/CSS
2436 / 1115 / 312
Регистрация: 23.06.2011
Сообщений: 3,532
06.08.2019, 07:35
Цитата Сообщение от ДмитрийМаштаков Посмотреть сообщение
но у меня много таких кнопок, совершенно одинаковые подсказки тогда зря мельтешить перед глазами будут
ещё как достают когда не нужны

это решается просто, добавь чек в настройках и маленькую функцию, tit() это карта со всеми подсказками, ключ он же имя элемента
PureBasic
1
2
3
4
5
6
7
Procedure showHideTitles(); показать/не показать подсказку
If GetGadgetState(chk("tips")\a)=1; показать
ForEach tit():If tit()\s:GadgetToolTip(tit()\a, "  "+tit()\s+"  "):EndIf:Next
Else; удалить
ForEach tit():GadgetToolTip(tit()\a, ""):Next
EndIf
EndProcedure
чек это глобально, он запоминается, ещё делал кнопку которая не запоминалась, но на лету включала/выключала подсказки, оказалось удобно, в проге было много закладок и бегать в настройки не очень, а тут на каждой закладке кнопка, у неё своя неудаляемая подсказка
1
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
06.08.2019, 10:19
Цитата Сообщение от newJS Посмотреть сообщение
это решается просто
К сожалению ( а может и к счастью!) VB6<>PureBasic
1
Эксперт JSЭксперт HTML/CSS
2436 / 1115 / 312
Регистрация: 23.06.2011
Сообщений: 3,532
06.08.2019, 16:22
Цитата Сообщение от Pro_grammer Посмотреть сообщение
К сожалению ( а может и к счастью!) VB6<>PureBasic
И чё? визуал настолько плох что не может провернуть такой фокус?
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
07.08.2019, 07:37
Цитата Сообщение от newJS Посмотреть сообщение
визуал настолько плох
Об этом разве разговор?
1
1 / 2 / 0
Регистрация: 30.06.2019
Сообщений: 30
07.08.2019, 11:57  [ТС]
А не поможете ещё в таком деле:
У меня в программе 2 размера окна picturebox - маленькое и большое.
Перехожу от одного к другому, меняя свойства Height и Width.
Загружаю картинку маленького формата. Редактирую её в маленьком окне,
запоминаю - SavePicture Picture1.Image,"имя_файла". Получается она по формату маленького окна. И я в общем-то против этого не возражаю.

Однако, если я в процессе работы сделаю окно большим, а потом опять маленьким, то формат запоминания будет соответствовать размеру большого окна.

Вопрос - как сделать так, чтобы запоминаемый файл получался бы размером поменьше?
Когда файл одиночный, то проблем нет - зашёл в Паинт и обрезал его. Но если делать анимацию, то получается масса файлов огромного размера. И это неудобно.

Добавлено через 19 минут
Можно, конечно исхитриться. Поставить дело на поток. Сделать специальную программу с двумя окнами - малюсеньким, и того размера, который нужен.
Затем читать файлы большого формата в окошечко малюсенького размера, потом переписывать методом PaintPicture часть изображения в окно нужного формата, и наконец, запоминать файлы нужным форматом.
Но неужели другого способа нет?
Я походил по поисковику, проблема такая есть, народ интересуется, но вразумительного ответа я не нашёл.
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
07.08.2019, 17:19
Цитата Сообщение от ДмитрийМаштаков Посмотреть сообщение
Однако, если я в процессе работы сделаю окно большим, а потом опять маленьким, то формат запоминания будет соответствовать размеру большого окна.
Вопрос - как сделать так, чтобы запоминаемый файл получался бы размером поменьше?
Считаем, что Picture2 больше, чем Picture1.
Тогда так сохранится только видимая часть Picture1:
Visual Basic
1
2
Picture1.Picture = Picture2.Image
SavePicture Picture1.Image, "c:\test1.bmp"
Если нужно масштабировать изображение, то код сложнее. Сходите на форум по VB6? там есть решение.
1
1 / 2 / 0
Регистрация: 30.06.2019
Сообщений: 30
07.08.2019, 18:33  [ТС]
Спасибо. У меня проблема сама собой рассосалась. Оказалось, что её решение у меня в программе уже есть. Кадры мультфильма, которые видны на форме краешками малюсенького размера
https://www.cyberforum.ru/atta... 1565191056
я запоминаю именно так - копирую их на окно рисунка и запоминая его. Если окно рисунка побывало в большом формате, то файлы получаются большого размера.
Но это ничего - я закрываю редактор, вновь открываю его, загружаю эти файлы и ещё раз запоминаю их. Точно так же - опять через окно рисунка редактора. Но поскольку редактор в режиме большого окна не побывал, то файлы получаются меньшего размера.
Миниатюры
Визуал Бейсик 6 Редактор для художественного рисования  
0
1 / 2 / 0
Регистрация: 30.06.2019
Сообщений: 30
07.08.2019, 22:19  [ТС]
Аладин, между тем, уже перемещается в пространстве - http://yadi.sk/i/Faz8IH6I0v5g0w
)) и на этом я, пожалуй, закончу. Буду делать что-нибудь другое. Спасибо за помощь в работе.
0
1 / 2 / 0
Регистрация: 30.06.2019
Сообщений: 30
22.04.2020, 14:31  [ТС]
С масштабированием я разобрался только сейчас - http://proza.ru/2020/04/22/1178
Между делом, находясь на карантине, сделал новую версию редактора с неограниченным по размерам поле рисования. Получилось удачно, и в отношении дизайна тоже - http://proza.ru/2020/04/07/1977
0
1 / 2 / 0
Регистрация: 30.06.2019
Сообщений: 30
29.08.2024, 09:00  [ТС]
Ау! Вы там живы ещё? Я имею в виду, форум по Визуал Бейсику ещё работает?
С первых моих проб по компьютерному рисованию много времени прошло. Теперь редактор несколько другой, но интерфейс похожий. Зато масса других возможностей появилось. Например, векторная графика в стереометрии для подготовки к экзаменам ЕГЭ.
Или анимация. Возможности редактора можно видеть тут https://dzen.ru/video/watch/65... 1406496669
Дмитрий.
1
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18331 / 14257 / 5370
Регистрация: 17.03.2014
Сообщений: 28,920
Записей в блоге: 1
29.08.2024, 23:38
Цитата Сообщение от ДмитрийМаштаков Посмотреть сообщение
форум по Визуал Бейсику ещё работает?
Работает. В чем несложно убедиться.
0
Эксперт .NET
 Аватар для Usaga
14347 / 9450 / 1360
Регистрация: 21.01.2016
Сообщений: 35,631
30.08.2024, 07:15
ДмитрийМаштаков, похвально, что работа над приложением ведётся. Но UI очень жестокий. Прямая противоположность словам "удобно" и "интуитивно понятно".
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.08.2024, 07:15

Редактор для рисования
Привет всем!!! Нужно что-нибудь нарисовать, в нете искал не нашел. Помогите может кто-нибудь что-то подобное делал, залейте плиз. или...

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

Графический редактор на Qt. Область рисования
Пишу простенький графический редактор в Qt Creator. Проблема в том, что я не очень понимаю, как создать область рисования(холст) и как...

Ищу OpenGL 3D редактор с возможностью рисования примитивов
Доброго времени суток. Проблема следующая. По работе работаю в среде ArcGis. Предполагалось, что для 3D черчения я буду использовать...

Создать графический редактор, в котором имелась бы возможно рисования мышью
Добрый вечер. Нужно создать графический редактор, в котором имелась бы возможно рисования мышью. При этом по нажатию некоторой клавиши...


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

Или воспользуйтесь поиском по форуму:
57
Ответ Создать тему
Новые блоги и статьи
Программа для com-порта
Uhbif79 05.06.2026
Всем привет, давно хотел изучить Qt, начинал, бросал, потом снова начинал. И сейчас вот смог написать свою первую программу. До этого имел опыт программирования микроконтроллеров, писал прошивки на. . .
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений. . . .
21 мат мед. Планы на развитие модели здравоСохранения
anaschu 01.06.2026
AnyLogic: план развития симуляционной модели рабочего коллектива — динамический абсентеизм, реальные данные, три сценария сравнения Продолжаю серию постов о дискретно-событийной модели рабочего. . .
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru