roboforum.ruТехнический форум по робототехнике. |
|
|
…вы видимо не обратили внимание?
Проще всего на компе смоделировать обработчик "на лету".
Картинок можно нащелкать фотиком и ужать до нужных размеров,
например, 80х60 пикселей.
То есть на то, что его "ожидание" зависит от предыдущей строки (в кадре, а не по времени),…
за идею размена вертикального разрешения на горизонтальное с помощью смещения сетки в разных строках - тоже спасибо
contr писал(а):Прикидка, если таки поняли, идет не в кадре, а относительно строки
=DeaD= писал(а):Вместо колокола использовать обычный график состоящий всего из 3 участков - 0 - 1 - 0.
Тогда оно не будет смещать линию и не будет зигзагов.
=DeaD= писал(а):0-1-0 как и колокол найдёт линию только если она была в середине
m = 40 ' Положение центра колокола в первой строке
For j = 23 To 0 Step -1 ' До компа долетает только 24 строки, хотя проц ловит 60.
' Считаем снизу вверх
Sum = 0: Sum2 = 0:
For i = 0 To 79 ' 80 пикселей в строке
If Abs((3.1415929 * 2) * (i - m) * ((23 - j) + 12) / 800) > 3.14159 Then
k = 0.01
Else
k = ((Cos((3.1415929 * 2) * (i - m) * ((23 - j) + 12) / 800) + 1) / 2)
' тут в качестве колокола используется кусок косинуса
' в проце можно задать таблично
End If
Sum = Sum + k * (15 - pic(i, j)) * i
Sum2 = Sum2 + k * (15 - pic(i, j))
' pic(i,j) - это пиксель - 0=черный, 15=белый.
' (15-pic) - потому что ищем черное на белом.
Next i
i = Sum / Sum2: m = 1.5 * i - 0.5 * m
If j = 23 Then
Picture1.PSet (i + 0.5, j + 0.5), RGB(0, 256, 0)
Else
Picture1.Line -(i + 0.5, j + 0.5), RGB(0, 256, 0)
End If
Next j
=DeaD= писал(а):Вам это попробовать - 5 минут, а мне всё с нуля писать
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4