Вверх ↑
Этот топик читают: Гость
Ответов: 204
Рейтинг: 2
#1: 2019-07-21 15:40:27 ЛС | профиль | цитата
Как можно осуществить рисование по опорным точкам в HiAsm? Проблема в том что я пытаюсь сделать рисование с возможностью корректировки линий после отрисовки путём передвигания этих самых точек. Пока вообще ничего не выходит! (
Пожалуйста, подскажите как быть или хотя бы пните в нужном направлении.

Что-то в поиске ничего не выдаёт, хотя когда-то я точно находил тему где это обсуждалось!
карма: 1

0
vip
#1.1контекстная реклама от партнеров
Ответов: 2059
Рейтинг: 131
#2: 2019-07-21 17:01:20 ЛС | профиль | цитата
Для кривых, то что первое в голову приходит, - Кривая Безье.
Add(Img_CurveBezier,15825916,238,161)
{
}
Только компонент не поддерживает множественные точки. (переменное количество)

С прямыми наверное вопросов нет - каждый раз соединяешь точки прямыми.
Можешь скопипастить кусок кода для IC из компонента display_tree.
http://forum.hiasm.com/topic/67374 - для построения дерева в памяти и его отображения https://yadi.sk/d/tGb4iiX3JVo4RA

Редактировалось 2 раз(а), последний 2019-07-21 17:04:52
карма: 6

0
Ответов: 204
Рейтинг: 2
#3: 2019-07-22 00:19:59 ЛС | профиль | цитата
flint2 писал(а):
Для кривых, то что первое в голову приходит, - Кривая Безье.

Add(Img_CurveBezier,15825916,238,161)
{
}

Только компонент не поддерживает множественные точки. (переменное количество)

С прямыми наверное вопросов нет - каждый раз соединяешь точки прямыми.
Можешь скопипастить кусок кода для IC из компонента display_tree.
http://forum.hiasm.com/topic/67374 - для построения дерева в памяти и его отображения https://yadi.sk/d/tGb4iiX3JVo4RA

Редактировалось 2 раз(а), последний 2019-07-21 17:04:52


Ок спасибо. буду пробовать
карма: 1

0
Ответов: 2059
Рейтинг: 131
#4: 2019-07-22 15:39:12 ЛС | профиль | цитата
ogrif, ключевое слово "каждый раз снова, с чистого листа" перерисовываешь ̶с̶ц̶е̶н̶у ̶х̶о̶л̶с̶т на объекте на котором рисуешь.
Достаточно условно

Add(MainForm,2953706,147,154)
{
Point(Handle)
}
Add(Img_Point,6459092,133,308)
{
DrawSource=1
Point(X)
Point(Y)
}
Add(Button,3194725,42,413)
{
Left=10
Top=245
link(onClick,2895478:doEvent1,[])
}
Add(For,13934527,140,420)
{
End=10
link(onEvent,8309279:doEvent1,[])
}
Add(Random,11580695,245,420)
{
Max=240
}
Add(Random,8450479,252,462)
{
Max=385
}
Add(Hub,8309279,189,420)
{
OutCount=6
link(onEvent1,11580695:doRandom,[])
link(onEvent2,8450479:doRandom,[(227,433)(227,468)])
link(onEvent3,3548200:doDraw,[(255,440)(255,314)])
link(onEvent4,16463420:doData,[(231,447)(231,531)])
link(onEvent5,4004909:doData,[(252,454)(252,566)])
link(onEvent6,13603943:doRefresh,[(215,461)(215,272)(128,272)(128,83)])
}
Add(Img_Line,3548200,308,308)
{
Point(Point1)
Point(Point2)
link(Bitmap,13603943:Bitmap,[(314,208)(146,208)])
link(Point1,11688599:Point,[(321,296)(377,296)])
link(Point2,11399015:Point,[(328,296)(335,296)])
}
Add(PointXY,11399015,329,252)
{
link(X,1547414:Value,[(335,226)(286,226)])
link(Y,1147209:Value,[(342,226)(356,226)])
}
Add(PointXY,11688599,371,252)
{
link(X,10937958:Var3,[(377,240)(317,240)(317,506)])
link(Y,15558679:Var3,[(384,240)(318,240)(318,464)])
}
Add(Memory,1147209,350,168)
{
}
Add(Memory,1547414,280,168)
{
}
Add(DoData,16463420,259,525)
{
link(onEventData,1547414:doValue,[(303,531)(303,353)(268,353)(268,174)])
link(Data,10937958:Var2,[(265,517)(272,517)])
}
Add(DoData,4004909,301,560)
{
link(onEventData,1147209:doValue,[(342,566)(342,174)])
link(Data,15558679:Var2,[])
}
Add(GetDataEx,10937958,266,501)
{
Angle=3
link(Data,8450479:Random,[(258,506)])
}
Add(GetDataEx,15558679,301,459)
{
Angle=3
link(Data,11580695:Random,[(251,464)])
}
Add(PaintBox,13603943,140,77)
{
Left=5
Width=385
Height=240
}
Add(Hub,2895478,98,413)
{
link(onEvent1,13603943:doClear,[(126,419)(126,90)])
link(onEvent2,13934527:doFor,[])
}


Я всё громче забываю, ничего не путаю. С каждою минутою.
Помница есть функция, которая стирает предыдущую линию и чертит новую.
Всё зависит от ситуации - чего хочешь.

P.S.
Просто так, по клавишам. К тебе нисколько ogrif, не относится.
Меня всё чаще посещает мысль, что кубики воспитывают интеллектуальный паразитизм.
Нужны штампы и решения по каждому чиху.
Ну и действительно, не понимая , что внутри кубика заложено - начинают гадать и делать недопустимое скрещивание.
(Наверное легче посмотреть, что внутри написано.)
Я не против кубиков!
Даже очень полезно чего-то побыстрому накосячить, или прототип сделать.
Но когда делать программу "своей мечты", или не дай бог для сотрудников по месту работы - это выше крыши!
Выучить язык и написать нужное количество строк - непреодолимое препятствие!
Будем надеяться, что это лень, а не деградация...

Редактировалось 11 раз(а), последний 2019-07-22 17:24:32
карма: 6

0
Ответов: 8886
Рейтинг: 823
#5: 2019-07-22 18:08:09 ЛС | профиль | цитата
flint2, а вот на "кубиках", а ну кому кубики!
ogrif, посмотрите, может пригодится
http://forum.hiasm.com/getfile/38711
карма: 19

0
Ответов: 2059
Рейтинг: 131
#6: 2019-07-22 18:15:05 ЛС | профиль | цитата
Лёнь, я тебя люблю и уважаю!!!
карма: 6

0
6
Сообщение
...
Прикрепленные файлы
(файлы не залиты)