Перейти к содержанию
    

растолкуйте следующее Си-свинство.

в строке: reportBuffer.dx = d = DIVIDE_BY_64(cosinus);

происходит сразу 2 присваивания: переменным "reportBuffer.dx" и "d" присваивается значение DIVIDE_BY_64(cosinus). И в какой последовательности они присваиваются, знает только компилятор :),

Неправильно. Порядок занесения значений очень даже четко определен. В этом выражении используются два выражения "оператор присваивания" и результат первого (d = DIVIDE_BY_64(cosinus)) является аргументом второго (reportBuffer.dx =). Причем то, что в результате этих выражений в d и reportBuffer.dx оказываются новые значения - всего лишь побочный эффект выражения "оператор присваивания".

 

странно для чего присваивать 7 и сдвигать на 6 бит,если можно было сразу присвоить результирующее значение
Потому что тут используется арифметика с фиксированной точкой, значения имеют 6 битов после запятой. И в данном случае в переменную заносится число 7.0, что сразу видно из такой записи исходника. Если бы там было, как вы предлагаете, написано число 448 - то много народу сломало бы голову, пытаясь ответить на ваш вопрос "что за магическое число 448 тут стоит"?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ну я то уже проанализировал и выдал ,как я это вижу.

функция линейна-это я так вижу.

Но на самом деле окружность рисуется!

 

Буду рад если вы мне откроете глаза конечно-безмерно.

 

вот как я это вижу:

http://youtu.be/WH7LYUTf7m0

Изменено пользователем ветерок

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

функция линейна-это я так вижу.

Но на самом деле окружность рисуется!

Дико извиняюсь, что нет времени посмотреть исходник. Но это, случаем, не реализация алгоритма Брезенхема для рисования окружностей? И вот с разъяснением: http://www.codenet.ru/progr/video/alg/alg4.php

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сергей Борщ

что-то в этом есть..

Но у меня-то отсутствуют "ключевые пиксели" или их невидно из-за относительности координат перемещения курсора.

 

записал видео с трассировкой маршрута )

http://youtu.be/u4gOIj9_7WI

 

никак не могу сообразить как так получается...

Изменено пользователем ветерок

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Но это, случаем, не реализация алгоритма Брезенхема для рисования окружностей?
«Та не»™

CORDIC поворт вектора.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Извините, конечно, но я сейчас Сергею отвечал.

Первое сообщение этой темы видел минут через пять после его написания, задолго до первого ответа.

Но сам Вам не отвечал, конверт уже заклеен был.

________________

Привет, Пятачок!

Как живёшь?

С приветом, Пух.

p.s. Хотел послать тебе три рубля, но уже заклеил конверт.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

объясните на пальцах, в википедии нервы кончились.

 

1. Квадрата (ромба) там нет. (есть вычисленные значение, но здесь приводить не буду т.к. полный цикл 365 строк, могу скинуть в личку)

2. Это скорее всего и есть алгоритм Брезенхейма, только адаптированный для окружности.

3. А самое главное, в HID report-е передаются не координаты, а смещения относительно предыдущего положения. По сути - Брезенхем :), только предыдущие координаты отрезка, драйвер HID уже знает :) Вот по этому и получается окружность.

 

ЗЫ Хотя ReAl прав, на CORDIC больше похоже.

Изменено пользователем Lebets_VI

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

всем объявляю благодарность за отзывчивость я примерно понял,хочу отметить что это очень изящное решение.

Не смотря на всё это свинство ))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...