Портрет из ниток на VB6

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
giaber
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 108
Зарегистрирован: 14.01.2009 (Ср) 13:51

Портрет из ниток на VB6

Сообщение giaber » 13.01.2017 (Пт) 20:31

Здравствуйте, уважаемые!
Увидел в инете такую любопытную штуку – портрет из ниток: https://www.youtube.com/watch?v=BRrMdkaTe1E

У меня есть ЧПУ-фрезер. Поле работы 30см на 40 см. И вот пришла мне в голову мысль, что было бы прикольно прицепить головку для выпуска ниток внатяжку и запрограммировать его на изготовление такого рисунка по фотографии. Фото надо сделать видимо ЧБ, скажем 256 градаций или меньше (128 или 64). Но вот никак не представляю алгоритм создания на VB6 таких траекторий по фото. То есть перевод на команды, понятные станку – не проблема, я не одну программку для вырезания стандартных фигур уже сделал под свои нужды на VB. То есть я прошу подсказать направление, идеи как реализовать чисто на бейсике для случая прямоугольника и круга. Сам ну ничего не могу сообразить

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Портрет из ниток на VB6

Сообщение alibek » 13.01.2017 (Пт) 20:55

То есть нужно перевести растр с вектор?
Lasciate ogni speranza, voi ch'entrate.

giaber
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 108
Зарегистрирован: 14.01.2009 (Ср) 13:51

Re: Портрет из ниток на VB6

Сообщение giaber » 13.01.2017 (Пт) 21:27

Рисунок создаётся как бы прямыми линиями
Скажем у нас поле 300х400, но «крючки», за которые цепляются нитки расположены через 5 мм
То есть, концевые точки, через которые проходят линии, расположены через каждые четыре пикселя, то есть 0, 4, 9 …
Насколько чернее точка рисунка, настолько чаще должна пройти через неё линия, удобно приравнять количество проходов линии в данной точке градации «тёмности» этой точки, при всём этом желательно чтоб линии вообще были максимально равномерно разбросаны по крючкам,

А насчёт вектора не могу сказать – вполне возможно…

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Портрет из ниток на VB6

Сообщение alibek » 13.01.2017 (Пт) 23:17

Lasciate ogni speranza, voi ch'entrate.

giaber
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 108
Зарегистрирован: 14.01.2009 (Ср) 13:51

Re: Портрет из ниток на VB6

Сообщение giaber » 14.01.2017 (Сб) 8:52

alibek, прочитал,но это всё я знаю по роду моей основной деятельности (шелкография), и не совсем понимаю какое это имеет отношение к данному вопросу? То есть, как я понимаю, вы считаете, что надо иметь растрированый рисунок? ОК, не могу спорить, но потом? что делать?

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: Портрет из ниток на VB6

Сообщение Mikle » 14.01.2017 (Сб) 10:18

alibek писал(а):То есть нужно перевести растр с вектор?

Не совсем. Тут все нити являются хордами круга. Причём конец предыдущей нити является началом следующей.
giaber писал(а):прошу подсказать направление, идеи как реализовать чисто на бейсике для случая прямоугольника и круга.

Что если каждый раз из всех возможных направлений выбирать то, где больше процент тёмных участков?

giaber
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 108
Зарегистрирован: 14.01.2009 (Ср) 13:51

Re: Портрет из ниток на VB6

Сообщение giaber » 14.01.2017 (Сб) 10:29

Сейчас на часик уходить надо - по пути попытаюсь представить и осознать - у меня соображалка на порядок-два медленней, чем у вас у всех работает...

The trick
Постоялец
Постоялец
 
Сообщения: 781
Зарегистрирован: 26.06.2010 (Сб) 23:08

Re: Портрет из ниток на VB6

Сообщение The trick » 14.01.2017 (Сб) 10:40

Мб с переделкой это подойдет https://habrahabr.ru/post/68323/
UA6527P

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Портрет из ниток на VB6

Сообщение alibek » 14.01.2017 (Сб) 10:44

Mikle писал(а):Тут все нити являются хордами круга.

Мне показалось, что ТС фокусируется именно на «вышивании нитками», а не на круглой форме полотна.
То есть я так понял, что у него обычный прямоугольный холст, только его нужно «спрясть» так, чтобы получилось изображение.
Lasciate ogni speranza, voi ch'entrate.

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: Портрет из ниток на VB6

Сообщение Mikle » 14.01.2017 (Сб) 17:39

Что-то я загорелся идеей и попробовал свой вариант воплотить.
Код сильно не ругайте, это просто поток сознания, главное, что идея работает.
Рисуется 20000 нитей в массив 4096*4096, потом масштабируется до 512*512.
Есть куча мыслей по дальнейшему улучшению.
Запускайте EXE, из IDE очень медленно.
Вложения
Нити.zip
(110.71 Кб) Скачиваний: 191

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Портрет из ниток на VB6

Сообщение ger_kar » 14.01.2017 (Сб) 18:31

Прикольно. Посмотрел на алгоритм, сплошные расчеты, с ходу вообще ничего не понял. Но буду разбираться, стало интересно, как это вообще работает :)
И опять вся на библиотеку SR2D завязано. У меня кстати по библиотеке возник такой вопрос. Если например сделать вывод некой графики (бланк документа, где в основном прямоугольники, линии и текст), то можно ли приспособить эту библиотеку для того чтобы плавно масштабировать ее вывод. Чтобы получить возможность менять масштаб, как в документе Word или pdf?
Бороться и искать, найти и перепрятать

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: Портрет из ниток на VB6

Сообщение Mikle » 14.01.2017 (Сб) 18:37

ger_kar писал(а):можно ли приспособить эту библиотеку для того чтобы плавно масштабировать ее вывод. Чтобы получить возможность менять масштаб, как в документе Word или pdf?

Не выйдет. Word и т. п. масштабируют вектор, а SR2D - растровая библиотека, масштабировать картинку - без проблем, но на всяких графиках будет сильно мешать размытие.
ger_kar писал(а):И опять вся на библиотеку SR2D завязано.

Нет, SR2D загружает и показывает картинку, весь алгоритм в Work и FindWay, там из SR2D только Spr2.DrawLine() - рисование линии в спрайт-приёмник.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Портрет из ниток на VB6

Сообщение Хакер » 14.01.2017 (Сб) 19:20

ger_kar писал(а):Если например сделать вывод некой графики (бланк документа, где в основном прямоугольники, линии и текст), то можно ли приспособить эту библиотеку для того чтобы плавно масштабировать ее вывод. Чтобы получить возможность менять масштаб, как в документе Word или pdf?

Что только не придумают, лишь бы GDI+ не использовать.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

TheWatcher
Новичок
Новичок
Аватара пользователя
 
Сообщения: 29
Зарегистрирован: 27.08.2012 (Пн) 0:53
Откуда: Республика Беларусь

Re: Портрет из ниток на VB6

Сообщение TheWatcher » 15.01.2017 (Вс) 4:50

Mikle писал(а):Что если каждый раз из всех возможных направлений выбирать то, где больше процент тёмных участков?
Mikle писал(а):... это просто поток сознания, главное, что идея работает.


Mikle, это круто. Вы только что кому-то сувенирный стартап подарили. :D
TheWatcher
=========
3.6GHz Core i5-3470, 16GB RAM / GTX 1060, 6GB VRAM
x86 Win XP Pro Sp3 / x64 Win 7 Ult Sp1 / x64 Ubuntu 16.04


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: SemrushBot и гости: 35

    TopList