На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! правила раздела Алгоритмы
1. Помните, что название темы должно хоть как-то отражать ее содержимое (не создавайте темы с заголовком ПОМОГИТЕ, HELP и т.д.). Злоупотребление заглавными буквами в заголовках тем ЗАПРЕЩЕНО.
2. При создании темы постарайтесь, как можно более точно описать проблему, а не ограничиваться общими понятиями и определениями.
3. Приводимые фрагменты исходного кода старайтесь выделять тегами code.../code
4. Помните, чем подробнее Вы опишете свою проблему, тем быстрее получите вразумительный совет
5. Запрещено поднимать неактуальные темы (ПРИМЕР: запрещено отвечать на вопрос из серии "срочно надо", заданный в 2003 году)
6. И не забывайте о кнопочках TRANSLIT и РУССКАЯ КЛАВИАТУРА, если не можете писать в русской раскладке :)
Модераторы: Akina, shadeofgray
Страницы: (5) « Первая ... 2 3 [4] 5  все  ( Перейти к последнему сообщению )  
> как заставить закрутиться кубик
    Так чтоже получается, мой способ, который был прозван неявным поворотом, оказывается мало того самым простым, так еще и быстрым для конкретной задачи, полчаса програмли+4часа разгрёба глюков=готово...
      Быстрее всего и проще взять готовую библиотеку работы с матрицами от интела, опимизированную под MMX, где премножение вектора на матрицу делается за один такт
        QUOTE (MeG @ 18.11.03, 10:14)
        Быстрее всего и проще взять готовую библиотеку работы с матрицами от интела, опимизированную под MMX, где премножение вектора на матрицу делается за один такт

        Gde etu biblioteku vziat pod VC++ ?
            QUOTE
            не понимаю сыр-бора. никто точку в пространстве вертеть не умеет, что ли? а восемь?
            а матрицы эти я бы все на фиг повыкидывал. еще для них класс писать - слишком много чести. там больше все нули в этих матрицах поворота перемножаются и складываются, а времени при типе double тратиться немеренно, так что лучше сразу формулу писать без всякиз еб*чих матриц.

            ну так матрицы нужны, чтобы синусы каждый раз не вычислять, а нули перемножаются только вначале. а с фиксированной точкой ето геморрой
              QUOTE (wormball @ 19.11.03, 11:41)
              QUOTE
              не понимаю сыр-бора. никто точку в пространстве вертеть не умеет, что ли? а восемь?
              а матрицы эти я бы все на фиг повыкидывал. еще для них класс писать - слишком много чести. там больше все нули в этих матрицах поворота перемножаются и складываются, а времени при типе double тратиться немеренно, так что лучше сразу формулу писать без всякиз еб*чих матриц.

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

              так, если ты повернул кубик, тебе в любом случае предстоит посчитать синус, хоть ты в матрице, хоть нет. biggrin.gif или я не прав?
              и потом, что ты имел в виду, что с фиксированной точкой геморой? вроде бы в компе с плавающей точкой вычисление производится или я что-то подзабыл-попутал? вроде полигональную модель не представить путево в целых числах?
              в общем, колись! biggrin.gif
              Сообщение отредактировано: experimenter -
                Считать его не надо. Его надо брать из один раз для фиксированного шага угла рассчитанной sincos-таблицы.

                А матрицами или не матрицами, действительно по=, в рассуждении использования SIMD-команд процессора...
                  QUOTE
                  так, если ты повернул кубик, тебе в любом случае предстоит посчитать синус, хоть ты в матрице, хоть нет.  или я не прав?
                  да, но с матрицами тебе его надо будет один раз посчитать, а потом умножать все точки на одну и ту же матрицу.
                  QUOTE
                  Считать его не надо. Его надо брать из один раз для фиксированного шага угла рассчитанной sincos-таблицы.

                  помоему если ты щитаешь синусы один раз, а потом тысячу точек вертишь, то ты врядли на синусе много секономишь, к тому же талбица будет много памяти занимать.
                  QUOTE
                  и потом, что ты имел в виду, что с фиксированной точкой геморой? вроде бы в компе с плавающей точкой вычисление производится или я что-то подзабыл-попутал? вроде полигональную модель не представить путево в целых числах?
                  в общем, колись! 

                  я лично етим никогда не занимался, но говорят особо извращённые люди представляют вещественные числа как целые, а потом считают их целочисленной математикой. для етого даже ммх придумали. говорят получается быстрее.
                    QUOTE (wormball @ 20.11.03, 12:23)
                    QUOTE
                    так, если ты повернул кубик, тебе в любом случае предстоит посчитать синус, хоть ты в матрице, хоть нет.  или я не прав?
                    да, но с матрицами тебе его надо будет один раз посчитать, а потом умножать все точки на одну и ту же матрицу.
                    QUOTE
                    Считать его не надо. Его надо брать из один раз для фиксированного шага угла рассчитанной sincos-таблицы.

                    помоему если ты щитаешь синусы один раз, а потом тысячу точек вертишь, то ты врядли на синусе много секономишь, к тому же талбица будет много памяти занимать.
                    QUOTE
                    и потом, что ты имел в виду, что с фиксированной точкой геморой? вроде бы в компе с плавающей точкой вычисление производится или я что-то подзабыл-попутал? вроде полигональную модель не представить путево в целых числах?
                    в общем, колись! 

                    я лично етим никогда не занимался, но говорят особо извращённые люди представляют вещественные числа как целые, а потом считают их целочисленной математикой. для етого даже ммх придумали. говорят получается быстрее.

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

                    Vertex::RotateX(double Angle)
                    {
                    x = ...;
                    y = ...;
                    z = ...;
                    }

                    чем писать перемножения матриц, типа V = V*M; так как там делается много лишнего из-за разряженности матрицы.
                      не понял я тебя..... чойто за код ты понаписал??
                        QUOTE (wormball @ 21.11.03, 09:08)
                        не понял я тебя..... чойто за код ты понаписал??

                        ну, вот как поворачивается точка на плоскости
                        CODE

                        x = x cos ф - y sin ф,
                        y = x sin  ф+ y cos ф.

                        а при записи того же в матричном представлении, да еще в однородных координатах, как это любят делать, будет куча умножения на ноль, которую не понятно зачем делать.
                          ну так на ноль можно не умножать, если не хочешь, зато у тебя куча синусов. и с помощью матриц можно поворачивать не только в плоскости ху, и можно несколько поворотов представлять как один. tongue.gif
                          говорят есь ищо кватернионы, с их помощью тоже можно вращать
                            QUOTE (wormball @ 21.11.03, 09:35)
                            ну так на ноль можно не умножать, если не хочешь, зато у тебя куча синусов. и с помощью матриц можно поворачивать не только в плоскости ху, и можно несколько поворотов представлять как один. tongue.gif
                            говорят есь ищо кватернионы, с их помощью тоже можно вращать

                            уже устал с тобой спорить. ты не хочешь понять, что тебе говорю. я сам делал, как ты говоришь и проповедую и это тормозит комп.
                              а мож у тебя процедура неправильная, или ты каждый раз синус вычислял?? а без матриц не тормозит?? покажи процедуру
                                Цитата (TrivialCore @ 13.11.03, 22:42)
                                Что у тебя за ф-ия проекции какая-то странная.
                                Обычно берется x1 = x*C/z, y1 = y*C/z, а константа C высчитывается в зависимости от угла видения и величины окна-экрана.

                                Спасибо всем учасникам, лабу здал, вот только МОЯ ф-ия проекции преподу не понравилась как правильно считать эту const C?
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0.0685 ]   [ 14 queries used ]   [ Generated: 24.10.26, 06:43 GMT ]