|
2 страниц
< 1 2
|
 |
Ответов
(15 - 23)
|
May 28 2012, 06:15
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
QUOTE (Lebets_VI @ May 27 2012, 22:29)  в строке: 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 оказываются новые значения - всего лишь побочный эффект выражения "оператор присваивания". QUOTE (ветерок @ May 27 2012, 22:50)  странно для чего присваивать 7 и сдвигать на 6 бит,если можно было сразу присвоить результирующее значение Потому что тут используется арифметика с фиксированной точкой, значения имеют 6 битов после запятой. И в данном случае в переменную заносится число 7.0, что сразу видно из такой записи исходника. Если бы там было, как вы предлагаете, написано число 448 - то много народу сломало бы голову, пытаясь ответить на ваш вопрос "что за магическое число 448 тут стоит"?
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
May 28 2012, 09:41
|

Местный
  
Группа: Участник
Сообщений: 236
Регистрация: 29-11-06
Из: Ижевск
Пользователь №: 22 902

|
ну я то уже проанализировал и выдал ,как я это вижу. функция линейна-это я так вижу. Но на самом деле окружность рисуется! Буду рад если вы мне откроете глаза конечно-безмерно. вот как я это вижу: http://youtu.be/WH7LYUTf7m0
Сообщение отредактировал ветерок - May 28 2012, 09:47
--------------------
|
|
|
|
|
May 28 2012, 10:49
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
QUOTE (ветерок @ May 28 2012, 12:41)  функция линейна-это я так вижу. Но на самом деле окружность рисуется! Дико извиняюсь, что нет времени посмотреть исходник. Но это, случаем, не реализация алгоритма Брезенхема для рисования окружностей? И вот с разъяснением: http://www.codenet.ru/progr/video/alg/alg4.php
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
May 28 2012, 11:30
|

Местный
  
Группа: Участник
Сообщений: 236
Регистрация: 29-11-06
Из: Ижевск
Пользователь №: 22 902

|
Сергей Борщ что-то в этом есть.. Но у меня-то отсутствуют "ключевые пиксели" или их невидно из-за относительности координат перемещения курсора. записал видео с трассировкой маршрута ) http://youtu.be/u4gOIj9_7WIникак не могу сообразить как так получается...
Сообщение отредактировал ветерок - May 28 2012, 11:30
--------------------
|
|
|
|
|
May 28 2012, 17:39
|

Нечётный пользователь.
     
Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417

|
Извините, конечно, но я сейчас Сергею отвечал. Первое сообщение этой темы видел минут через пять после его написания, задолго до первого ответа. Но сам Вам не отвечал, конверт уже заклеен был. ________________ Привет, Пятачок! Как живёшь? С приветом, Пух. p.s. Хотел послать тебе три рубля, но уже заклеил конверт.
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
|
May 28 2012, 19:09
|
Группа: Участник
Сообщений: 12
Регистрация: 15-02-10
Пользователь №: 55 506

|
Цитата(ветерок @ May 28 2012, 20:59)  объясните на пальцах, в википедии нервы кончились. 1. Квадрата (ромба) там нет. (есть вычисленные значение, но здесь приводить не буду т.к. полный цикл 365 строк, могу скинуть в личку) 2. Это скорее всего и есть алгоритм Брезенхейма, только адаптированный для окружности. 3. А самое главное, в HID report-е передаются не координаты, а смещения относительно предыдущего положения. По сути - Брезенхем  , только предыдущие координаты отрезка, драйвер HID уже знает  Вот по этому и получается окружность. ЗЫ Хотя ReAl прав, на CORDIC больше похоже.
Сообщение отредактировал Lebets_VI - May 28 2012, 19:36
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|