"Супер фоновый" цвет (Вопрос РЕШЕН !)

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Re: "Супер фоновый" цвет

Сообщение Sharfik » 26.04.2016 01:00:30

Вот тебе еще для размышления
viewtopic.php?f=32&t=9607&p=78921#p78921
zub-у правда не понравилось))
Аватара пользователя
Sharfik
энтузиаст
 
Сообщения: 809
Зарегистрирован: 20.07.2013 01:04:30

Re: "Супер фоновый" цвет

Сообщение zub » 26.04.2016 01:07:11

>>только придётся бегать в буфер после каждого отрисованного объекта.
Это убивает единственный "верный" сценарий - получить битмап с номерами объектов 1 раз в момент "рендера" картинки и использовать его многократно, пока картинка не "перерендерилась" . Сгодится только для картинок наподобии приатаченых в топике, для более сложных будет очень медлено

Добавлено спустя 4 минуты 49 секунд:
>>zub-у правда не понравилось))
А я что? я ничего)) просто наковырялся с этими векторами... По "рабоче-крестьянски" сделать не выйдет - это штука сложная((
zub
долгожитель
 
Сообщения: 2887
Зарегистрирован: 14.11.2005 23:51:26

Re: "Супер фоновый" цвет

Сообщение Alex2013 » 26.04.2016 01:12:39

На счет координат ... Нет не проще ... У мня даже скролинг сделан сдвигом рабочего поля... Почему?
А тому, что принцип " пишем как слышим " рулит ! (Даже если "внезапно "понадобится сделать масштабирование можно будет просто выводить на Тimage с включенным Stretch-ем )

А еще это не просто графический редактор, а редактор веб-страниц ...
(Улавливаешь, что там основное ? Верно! Вывод текста кнопок полей вода и т.д. и графики как можно ближе к тому, что будет в брузере (в идеале один в один ) А значит чем меньше преобразований тем лучше ! )

Добавлено спустя 1 минуту 53 секунды:
Sharfik писал(а):Вот тебе еще для размышления
http://freepascal.ru/forum/viewtopic.ph ... 921#p78921
zub-у правда не понравилось))

Спасибо гляну !
Alex2013
долгожитель
 
Сообщения: 3145
Зарегистрирован: 03.04.2013 11:59:44

Re: "Супер фоновый" цвет

Сообщение zub » 26.04.2016 01:15:52

>>А тому, что принцип " пишем как слышим " рулит !
эх, твоими бы устами... не задумывлся почему гуглехромооперы отъедают гигабайты? этож вроде просто вебстраницы

Добавлено спустя 6 минут 8 секунд:
Sharfik
>>viewtopic.php?f=32&t=9607&p=78921#p78921
там с тех лохматых времен чтонибудь продвинулось?
zub
долгожитель
 
Сообщения: 2887
Зарегистрирован: 14.11.2005 23:51:26

Re: "Супер фоновый" цвет

Сообщение Sharfik » 26.04.2016 01:23:24

Alex2013 писал(а):А еще это не просто графический редактор, а редактор веб-страниц ...
(Улавливаешь, что там основное ? Верно! Вывод текста кнопок полей вода и т.д. и графики как можно ближе к тому, что будет в брузере (в идеале один в один ) А значит чем меньше преобразований тем лучше ! )

В таких программах подстава в том, что если сразу архитектуру не продумал - переделки на недели.
Все что тебя волнует легко в памяти отрисовываеться на канве1, а потом под нужды пользователя выводится с масштабированием на канву2. Для кликов мышки делается функция конвертации по коэффициенту масштаба. Собственно в моем примере это все есть. Этот же трюк используется в браузерах(страницы зуммируются) и в офисных программах типа ворд и эксель.
Аватара пользователя
Sharfik
энтузиаст
 
Сообщения: 809
Зарегистрирован: 20.07.2013 01:04:30

Re: "Супер фоновый" цвет

Сообщение Alex2013 » 26.04.2016 01:30:14

zub писал(а):Ну и в догонку. [s]порно[\s]графическим способом ты не сможешь разрулить случай когда под мышкой находится несколько объектов - будешь знать только о "верхнем"
А определить что в точке за пределами зоны отображения? не всегда только под мышкой надо

УЖЕ СМОГ ! :wink: Смотри код винительно !
А "за пределами" у меня просто нет 8) ...То есть совсем нет ! Скролинг идет СДВИГОМ ПаинтБокса (не в СкролБаре а прямо в панеле ... ) и клик мишки СОВЕРШЕНО автоматически транслируются в координаты рабочего поля ...И это единственный простой способ верно скролировать текст (Попробуй выведи ОутТекст и не только его по ОТРИЦАТЕЛЬНЫМ координатам )
Alex2013
долгожитель
 
Сообщения: 3145
Зарегистрирован: 03.04.2013 11:59:44

Re: "Супер фоновый" цвет

Сообщение Sharfik » 26.04.2016 01:40:44

zub писал(а):там с тех лохматых времен чтонибудь продвинулось?

Для тебя думаю мало что интересного. Тебя управление смущало, что не так четко как в zcad работает. А мне главное от класса того нужно, чтобы геометрию основную показывала, функция блоков была и не сильно много зависимостей было. Фишки добавил(рамка режима редактора, затухающие сообщения), а остальное внутри менял под нужды плагинов. Чтобы связывать сторонние классы с графикой. Не больше.


Попробуй выведи ОутТекст и не только его по ОТРИЦАТЕЛЬНЫМ координатам

Вопрос, у программы прямой вывод на канву? Она что то делает и рисует сразу на канве, которую видит пользователь?
Аватара пользователя
Sharfik
энтузиаст
 
Сообщения: 809
Зарегистрирован: 20.07.2013 01:04:30

Re: "Супер фоновый" цвет

Сообщение zub » 26.04.2016 01:54:28

>>Попробуй выведи ОутТекст и не только его по ОТРИЦАТЕЛЬНЫМ координатам
Ненадо его выводить по отрицательным координатам, первое правило - рисуй только то что видимо.

>>Скролинг идет СДВИГОМ ПаинтБокса
Я незнаю какие объемы ты планируешь отрисовывать, но имхо нужно изначально выбирать правильные подходы - потом всеравно придется переделывать))
Вот тут https://sourceforge.net/p/wp-laz/code/H ... wer/trunk/ лежит смотрелка на основе fpvectorial, и там тоже "Скролинг идет СДВИГОМ ПаинтБокса" тормоза от этого наступают очень быстро, даже на пустом "чертеже" - стоит фактическим размерам чертежа (не по кол-ву примитивов, а по габаритам) привысить некоторый предел, что легко достигается зумированием.
Конечно ты скажешь что зумирования не будет, или будет но минимальное\стречевое... что делаешь редактор вебстраниц а не графический редактор...

>>А тому, что принцип " пишем как слышим " рулит !
Принцип та может быть и рулить, но программы так не пишутся. При подходе в лоб ресурсоемкость будет нелинейно возрастать от кол-ва исходных данных и предел когда программа станет еле шевелиться придет очень быстро.
zub
долгожитель
 
Сообщения: 2887
Зарегистрирован: 14.11.2005 23:51:26

Re: "Супер фоновый" цвет

Сообщение Alex2013 » 26.04.2016 01:57:22

Sharfik писал(а):
Alex2013 писал(а):А еще это не просто графический редактор, а редактор веб-страниц ...
(Улавливаешь, что там основное ? Верно! Вывод текста кнопок полей вода и т.д. и графики как можно ближе к тому, что будет в брузере (в идеале один в один ) А значит чем меньше преобразований тем лучше ! )

В таких программах подстава в том, что если сразу архитектуру не продумал - переделки на недели.
Все что тебя волнует легко в памяти отрисовываеться на канве1, а потом под нужды пользователя выводится с масштабированием на канву2. Для кликов мышки делается функция конвертации по коэффициенту масштаба. Собственно в моем примере это все есть. Этот же трюк используется в браузерах(страницы зуммируются) и в офисных программах типа ворд и эксель.


В том то и фокус, что у меня "все кон-фу" не в основной программе прошито. а постепенно дописывается в скриптах
(в пост-релизной версии продолжения разработки вообще без изменения в основном коде )...
По этому программа как-бы просто некая, пока полу абстрактная, "среда выполнения скриптов ", и я достаточно легко могут там все переделать "под релиз" Потому, что там, значительно меньше "мяса на костях" чем в обычных программах .
И разработка без жесткого плана в моем случае вполне подходит . Нужна дополнительная функция для реализации чего то в скриптах? Добавил и забыл ...
Alex2013
долгожитель
 
Сообщения: 3145
Зарегистрирован: 03.04.2013 11:59:44

Re: "Супер фоновый" цвет

Сообщение zub » 26.04.2016 02:13:44

>>В том то и фокус, что у меня "все кон-фу" не в основной программе прошито. а постепенно дописывается в скриптах
кон-фу не в том сколько у тебя линий\элипсов\демобоксов реализовано, а в том чтобы например в текстовый примитив можно было вставить пару-тройку мегабайт текста, и твоя программа не шолохнувшись это проглотила
zub
долгожитель
 
Сообщения: 2887
Зарегистрирован: 14.11.2005 23:51:26

Re: "Супер фоновый" цвет

Сообщение Alex2013 » 26.04.2016 02:21:46

Sharfik писал(а):
Попробуй выведи ОутТекст и не только его по ОТРИЦАТЕЛЬНЫМ координатам

Вопрос, у программы прямой вывод на канву? Она что то делает и рисует сразу на канве, которую видит пользователь?

Пока все почти так но это все-же всего лишь чуть специфический редактор веб станиц ... (Сделать буфер не проблема но пока было не нужно из продолжительно малого количества элементов на странице ... Но с добавлением и постепенной разработкой библиотеки Raphael.js . видимо придется добавить )
Да что я в сухую пытаюсь объяснять ?
Посмотрите сами :arrow: viewtopic.php?p=96535#p96535
Alex2013
долгожитель
 
Сообщения: 3145
Зарегистрирован: 03.04.2013 11:59:44

Re: "Супер фоновый" цвет

Сообщение Лекс Айрин » 26.04.2016 09:33:19

Alex2013 писал(а):В том то и фокус, что у меня "все кон-фу" не в основной программе прошито. а постепенно дописывается в скриптах


Имхо, это не кон-фу, а самообман. Теперь тебе придется в "костях" продумать и реализовать быструю отрисовку примитивов. А насчет отрицательных координат... если приходится их использовать, то что-то пошло не так...
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: "Супер фоновый" цвет

Сообщение Alex2013 » 26.04.2016 13:13:15

Лекс Айрин писал(а):
Alex2013 писал(а):В том то и фокус, что у меня "все кон-фу" не в основной программе прошито. а постепенно дописывается в скриптах


Имхо, это не кон-фу, а самообман. Теперь тебе придется в "костях" продумать и реализовать быструю отрисовку примитивов. А насчет отрицательных координат... если приходится их использовать, то что-то пошло не так...

Самообман? Возможно ...
Но опять-же у меня не только html генерируется, а и в самом редакторе все рисуется через скрипт . То есть программа совершенно ничего "не знает" о том, что делает скрипт рисующий элемент...
А ускорения можно дробится хотя бы перестав каждый раз загружать скрипты с диска, а возможно и скомпилировать их один раз при загрузке программы .Кстати, интересно есть ли возможность выгрузить .гм :roll: .. "шитый код" ? ну вообщем то во что "компилирует " скрипитовый движок, на диск ?

Зы

А вопрос цветом уладил так ...
CurCanvas.Pen.Mode:=pmWhite;
Оказывается есть такой режим вывода : рисовать все белым или черным цветом !
(Видимо специально для похожих случаев )

Код: Выделить всё
// Номер команды по клику
Function GetCMDOnClik(X,Y:Longint):Longint;
Var
B:TBitmap;
i:longint;
begin
Result:=-1;
If drawlist= Nil  then exit;
If drawlist.Count=0  then exit;
B:=TBitmap.Create;
B.SetSize(rf1.PaintBox1.Width,rf1.PaintBox1.Height);
CurCanvas:=B.Canvas;
     For I:=0 TO DrawList.Count-1 DO
      begin
        b.Canvas.Brush.Color:=$f2;
        CurCanvas.FillRect(0,0,b.Width,b.Width);
        CurCanvas.Pen.Mode:=pmWhite;
         DrawFig(-1,DrawList[i]);
        CurCanvas.Pen.Mode:=pmCopy;
        if b.Canvas.Pixels[X,Y]<>$f2 then
                                  Result:=I;
     end;
CurCanvas:=rf1.PaintBox1.Canvas;
b.Free;
end;


..как говорится: "Сапоги нужно чистить с вечера.. а утром надевать на свежую голову ! " :D
...и где была моя голова вчера ... :?: :roll:

MysticCoder еще раз спасибо за идею !
Alex2013
долгожитель
 
Сообщения: 3145
Зарегистрирован: 03.04.2013 11:59:44

Re: "Супер фоновый" цвет (Вопрос РЕШЕН !)

Сообщение zub » 26.04.2016 19:34:09

Я тоже писатель еще тот, но всетаки постеснялся выкладыывать бы такое с меткой "вопрос решен"
1 - при отрисовке каждого скрипта ты чистишь всю область и в результате проверяешь только один пиксель. почему бы просто не почистить этот пиксель? хотя и его чистить ненадо - всеравно возвращаешь только один номер скрипта
2 - Есть какието гарантии что в скрипте не будет изменен CurCanvas.Pen.Mode?
3 - При такой реализации и не поставить Exit; после Result:=I;? А если хочется именно последний рисуемый скрипт просто крутить цикл в другую сторону
4 - Какой смысл в постоянном дерганьи CurCanvas.Pen.Mode?
Даже если ты и выбираешь такой способ хиттеста, то до "вопрос решен" еще далековато))
zub
долгожитель
 
Сообщения: 2887
Зарегистрирован: 14.11.2005 23:51:26

Re: "Супер фоновый" цвет (Вопрос РЕШЕН !)

Сообщение Alex2013 » 27.04.2016 12:39:53

Уважаемый ZUB ! Как говорится десу, но у вас явно коэффициент ворчливости повышен ... :D

1 То что я спросили действительно решено ..

2 Гарантии полные, в скриптах просто нет доступа к Canvas.Pen.Mode не нужен он там
(это же напоминаю будет вспомогательный редактор страниц для веб приложений ,а не анимация )

3 Спасибо за совет. (в обратную строну цикл раскрутить это отличная идея ! )
но это все оптимизация, а вопрос уже все равно решен .

4 А подумать ? Как сбрасывать фон? :roll: ... он же тоже будет того ..."как спина - белым" ... :mrgreen:
Зы
Слушай приятель мне конечно забавно читать такой изысканный программистский торлинг .
Но я тут по делу ... и мне действительно помогли советы на форуме .

Обсуждать мой проект можно в специально созданной для этого теме .

Добро пожаловать, буду рад советам и даже бурчанию ...

:arrow: Среда разрабтки веб приложений

(Одному без конститутивной критики малость тоскливо ...)

Исходников пока нет по причине того, что мене пока просто малость действительно стыдно их показывать
(Это же альфа версия ... ее задача просто постепенно наработать по возможности полный действующий фунуционал ...
или точнее будет сказать "концептуал"? ) :)

Но есть скрипты !
( там тоже все нуждается в улучшении но уже сейчас можно делать свои (там все очень просто! :idea: ) они могут быть "идейно продвинутыми" настолько на сколько хватит фантазии и знаний HTML и JavaScript )
Последний раз редактировалось Alex2013 27.04.2016 13:13:27, всего редактировалось 10 раз(а).
Alex2013
долгожитель
 
Сообщения: 3145
Зарегистрирован: 03.04.2013 11:59:44

Пред.След.

Вернуться в Lazarus

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 224

Рейтинг@Mail.ru