Вверх ↑
Этот топик читают: Гость
Администрация
Ответов: 15295
Рейтинг: 1519
#46: 2007-06-20 17:23:02 ЛС | профиль | цитата
ага 7х7... линки по сетке не выравниваются. При автовыравнивание идеальным было бы делать зазор в 1 пиксель. Т.е. размер матрицы должен быть всего вдвое меньше габаритов схемы.
карма: 27
0
Ответов: 2125
Рейтинг: 159
#47: 2007-06-20 17:35:04 ЛС | профиль | цитата
Dilma писал(а):
Т.е. размер матрицы должен быть всего вдвое меньше габаритов схемы.

Необязательно. Когда мы автоматом прокладываем трассу, можно выровнять по сетке 7х7, всё равно точки выровнены по этой сетке. А уж потом можно позволить юзеру подвинуть линию. Даже если линия "сдвинута" по отношению к сетке, при делении координат на 7 этот сдвиг не будет важен (надо лишь округлить в нужную сторону).
карма: 1

0
Ответов: 9906
Рейтинг: 351
#48: 2007-06-20 18:53:10 ЛС | профиль | цитата
Dilma писал(а):
ага 7х7... линки по сетке не выравниваются

Причем только из-за разницы в привязках HubEx и GetDataEx
Других убедительных причин нет

Dilma, надо вынести (хотя бы временно) это в dll-ку, и продумать вышеупомянутый интерфейс обмена.
И выложить с "пустым" методом в dll-ке (возвращающий тождественный false, скажем).

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

0
Администрация
Ответов: 15295
Рейтинг: 1519
#49: 2007-06-21 12:49:24 ЛС | профиль | цитата
Galkov писал(а):
надо вынести (хотя бы временно) это в dll-ку, и продумать вышеупомянутый интерфейс обмена.

а еще утверждал, что "телепаты в отпуске"

http://dev.hiasm.com/src/trace.rar

архив содержит:
HiAsm.exe - поддержка интерфейса для внешнего линк-трейса
settings.sha - добавление в среду опции для включения внешнего линк-трейса
lnk_trace.dll - собственно пример линк-трейса на базе алгоритма от tsdima(полностью рабочая версия)
lnk_trace.dpr - его исходник.

текущая реализация работает более менее приемлемо, однако без учета "косых" линков. Сетка взята размером в 3 пикселя.

[size=-2]------ Добавлено в 12:49
патч ставится поверх 163 билда
карма: 27
0
Разработчик
Ответов: 26151
Рейтинг: 2127
#50: 2007-06-21 13:14:40 ЛС | профиль | цитата
Dilma, не плохо, но шаг маловат -- не очень смотрится. Увеличить как-нибудь можно?
карма: 22

0
Администрация
Ответов: 15295
Рейтинг: 1519
#51: 2007-06-21 13:22:54 ЛС | профиль | цитата
nesco писал(а):
Увеличить как-нибудь можно?

исходник на что дан?
...
const
step = 3;
...

[size=-2]------ Добавлено в 13:22
Кроме того "не плохо" адресовать нужно tsdima - это его реализация, транслированная с бейсика
карма: 27
0
Разработчик
Ответов: 26151
Рейтинг: 2127
#52: 2007-06-21 13:40:52 ЛС | профиль | цитата
Dilma, увеличил до 5, откомпилировал, запустил, пытался соединить -- получил ошибку при трассировке "Access Violate". Интересно.. с чем связано?
карма: 22

0
Администрация
Ответов: 15295
Рейтинг: 1519
#53: 2007-06-21 14:15:52 ЛС | профиль | цитата
не подтверждается. Вероятно связано с примером, на котором это тестировалось.
карма: 27
0
Ответов: 2125
Рейтинг: 159
#54: 2007-06-21 18:28:19 ЛС | профиль | цитата
Dilma писал(а):
текущая реализация работает более менее приемлемо

Пространство вокруг элементов побольше надо сделать, хотя бы на один шаг.
И по-моему, первая точка не сохраняется - линк кривой.

[size=-2]------ Добавлено в 18:28
nesco писал(а):
получил ошибку при трассировке "Access Violate". Интересно.. с чем связано?

Я тоже получил. Dilma, какими Дельфями компилил? Теми, что с Хиасмом - не выходит.
карма: 1

0
Администрация
Ответов: 15295
Рейтинг: 1519
#55: 2007-06-21 18:48:23 ЛС | профиль | цитата
tsdima писал(а):
Пространство вокруг элементов побольше надо сделать, хотя бы на один шаг.

ну так пространство для творчества открыто Ждем законченных решений...

[size=-2]------ Добавлено в 18:45
tsdima писал(а):
какими Дельфями компилил?

tsdima, обижаешь.

Dilma писал(а):
не подтверждается

это значит:
- зашел в папку с hiasm build 163
- распаковал архив, выложенный на форуме
- написал простенький батник:
compiler\delphi\dcc32.exe -Ucompiler\delphi lnk_trace.dpr
pause
- поправил путь в *.pas
CGTShare in 'Elements\CGTShare.pas'[/code]
- удалил lnk_trace.dll
- запустил батник
- запустил среду
- убедился, что ошибка [b]не подтверждается[/b]

[size=-2]------ Добавлено в 18:48 [/size]
можно предположить так же, что у вас не build 163 со всеми патчами. Скажем CGTShare.pas содержит не stdcall декларацию, а стандартную Delphi.
карма: 27
0
Ответов: 2125
Рейтинг: 159
#56: 2007-06-21 18:50:20 ЛС | профиль | цитата
Ты-б ещё свой CGTShare.pas приложил, а то я смотрю вроде уже stdcall используется

[size=-2]------ Добавлено в 18:50
tsdima писал(а):
со всеми патчами

Ну и в каком патче новый CGTShare.pas?
карма: 1

0
Администрация
Ответов: 15295
Рейтинг: 1519
#57: 2007-06-21 18:51:25 ЛС | профиль | цитата
CGTShare.pas

code_1588.txt
карма: 27
0
файлы: 1code_1588.txt [12.4KB] [484]
Ответов: 2125
Рейтинг: 159
#58: 2007-06-21 19:02:22 ЛС | профиль | цитата
Вот теперь нормально

[size=-2]------ Добавлено в 18:59
Сделал, чтобы первая точка тоже сохранялась:
    x := x2;
    y := y2;

p := add_proc(p, x * step, y * step);
cgt._Debug(PChar('trace:' + int2str(x*step) + ',' + int2str(y*step)), clGreen);
old := md[x, y];
m[x, y] := -2;
While(x <> x1)Or(y <> y1) do

Только не факт, что так нужно. Если подвинуть элемент, то линк остаётся на месте. Говорил-же - надо по точкам выравнивать. Однако первая и последняя точка не всегда нужны, их бы как-нибудь автоматом удалять, если они на прямой лежат...

[size=-2]------ Добавлено в 19:02
И точки не совсем в точки элемента попадают, X*7+?
карма: 1

0
Администрация
Ответов: 15295
Рейтинг: 1519
#59: 2007-06-21 19:03:55 ЛС | профиль | цитата
не должна она сохраняться. Первая и последняя точки это координаты точек самого элемента. Проблема просто там в том, что центр точки элемента не кратен координатной сетке(сдвинут на 3 пикселя). Поэтому получаются кривые. Да и делить безусловно на размер сетки нельзя - нужно учитывать еще смещение скролов в окне.

[size=-2]------ Добавлено в 19:03
tsdima писал(а):
И точки не совсем в точки элемента попадают, X*7+?

чуть опередил с вопросом

Dilma писал(а):
Проблема просто там в том, что центр точки элемента не кратен координатной сетке(сдвинут на 3 пикселя).

карма: 27
0
Ответов: 2125
Рейтинг: 159
#60: 2007-06-21 19:06:28 ЛС | профиль | цитата
Dilma писал(а):
нужно учитывать еще смещение скролов в окне

Оп-па. А где-ж их взять-то?
карма: 1

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