Силён кто в математике?

  • Цитата

    Со слов пользователя Barnaul


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




    Вся проблема в том шо точка Б уходит в отризательную Зону с отрицательным углом поворота поетому думаю верхние решения не верны ,но ето только я так думаю ,а вот с поворотом изображения есть пример решения нахождения координат в отрицательном участке.

  • Цитата

    Со слов пользователя Аккерманец


    Вся проблема в том шо точка Б уходит в отризательную Зону с отрицательным углом поворота поетому думаю верхние решения не верны ,но ето только я так думаю ,а вот с поворотом изображения есть пример решения нахождения координат в отрицательном участке.


    я рассматриваю пример с отрезком находящимся в положительных координатах [X,Y] и там точка B пока не уходит в отрицательные координаты

  • все предложения перепробывал, ничего не выходит.
    Может ошибку в программирывание делаю, а формула правельноя.


    Мне на немецком форуме сказали, что почетатй о:
    rotationsmatrix, respektive translationsmatrix

  • Цитата

    Со слов пользователя ел_витал
    все предложения перепробывал, ничего не выходит.
    Может ошибку в программирывание делаю, а формула правельноя.


    Мне на немецком форуме сказали, что почетатй о:
    ротатионсматрих, респективе транслатионсматрих


    я так понял ты работаеш с экранной областью раз в начале ты писал о [Pixel] и здесь идёт разговор о построении этих точек на экране монитора , если это так , то все мы знаем что координаты [Pixel] имеют всегда целое число , например 255,68 и так далее
    и с использованием [SIN,COS] мы этого никогда не получим, надо округлять до целого , но из-за этого будут постоянно неточности


    может это и являеться ошибкой?

  • нат, я числа округляю. Если бы от этого зависело, то совсем немного неправельно было бы. А у меня вобше ничего не выходит.
    Но я ешё сильно не задумывался, другое програмирывал. Время будет займусь этим делом. В сентябре екзамен здам, покажу игру. Это небольшой голф-симулатор будет.

  • прелагаю всем кто принимает участие помочь человеку , но спокойно и с самого начала , позвольте начать , и так мы имеем точку А , растояние от начала координат до точки А и меняющийся угол альфа , давайте для начала выведем формылы расчёта координат точки А


    [Х=25хCOS алфа]
    [Y=25хSIN алфа]
    так как эти данные будут постоянно меняться
    я думаю это верно,или?


    так как потом эти данные будут нужны


  • пример к этому рисунку , мы видим что отрезок АВ параллелен оси [Y] , исходя из этого угол альфа равен тоже 45°


    находим координаты точки А , Х=25х[cos45]=17,67
    Y=25х[SIN]45°=17,67


    теперь координаты точки В , координата Х останеться такой же ,
    координата Y=Y[A]-5=12,67

  • пример второй ,теперъ у нас угол альфа равен 30°


    ищем координаты точки А


    Х=25х[COS 30°]=21,65
    [Y]=25х[SIN 30°]=12,5
    пока всё верно,или? но теперь нам нужен угол помечен зелёным , для того чтобы узнать смещение точки Б , угол вычесляем и равен 15°(ранъше я допустил ошибку написав 5°)
    а теперь берём длинну отрезка АБ , которая равна 5
    считаем , по оси Х ,точка Б смещена на 5х[SIN 15°]=1,29
    по оси [Y] на 5х[COS 15°]=4,82
    мы нашли разницу в координатах , теперь чтобы найти координаты точки Б нужно от кординат точки А отнять полученые результаты смещения и получаем
    Х=21,65-1,29=20,36
    Y=12,5-4,82=7,68


    пока вё

  • если я сам от руки, то я могу при любом угле алфа вырешать точьку Б, изменяя формулу. А вот мне то надо одну универсальную формулу, которой при любой алфа можно с 25, 5 Пикселей и 45° вырешать Б.


    Мне всёже кажеца что надо имменно изходить из того что угол нарисованный на ресунке красным всегда одинаковый.

  • Цитата

    Со слов пользователя ел_витал
    Мне всёже кажеца что надо имменно изходить из того что угол нарисованный на ресунке красным всегда одинаковый.


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

    Сообщение было отредактировано 1 раз, последнее редактирование пользователем Barnaul ().

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



    to et_vital


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

  • Цитата

    Со слов пользователя И+Л+Ы+А
    Барнаул, извиняюсь, но то что ты делаеш в два шага, я собрал в один.
    Проверь мои формулы и получишь такой же результат.
    .


    я верю тебе , просто хотелось пошагово, ну и конечно не опротестовываю ничего написанного тобой
    меня это заинтерисовало ,так как давно так не думал как сегодня
    аж всё дымиться кругом :D

    Сообщение было отредактировано 1 раз, последнее редактирование пользователем Barnaul ().

  • Это классическая задача перехода из полярных координат в абсолютные.
    В данной задаче первый шаг - найти координаты красной точки. Это делается очень легко. Второй шаг - перенос системы координат в красную точку и вычисление координат синей точки. Затем остается собрать это вместе.


    Это все очень правильно сделал Barnaul.


    Остается перенести это в программу. Вот тут становиться сложнее. Часто ошибки возникают из-за того, что пытаются сразу собрать все, что известно для получения конечного результата. Но иногда полезно решить задачу в общем виде. Тогда можно быстрее найти ошибки в программном коде.

  • Думал об это, но формула у меня получилась не маленькая. Но все же если решать подставляя известные и все упростить, то в принципе может и стоит.


    З.Ы. Кстати, я уже писал об этом выше =)


    З.Ы.Ы. Пошел спать, завтра напишу рез-ты моих вычислений ;)

  • оценивайте


    10 PRINT введите угол альфа L
    20 INPUT L
    21 А=25
    30 X (A)=АхCOS L
    40 Y (A)=АхSIN L
    50 PRINT X (A), Y (A)
    60 IF L<45 THEN X (B)=X (A)-5xSIN (45-L)
    70 IF L>45 THEN X (B)=X (A)+5xSIN (L-45) REM именно L-45 иначе результат отрицателен
    71 IF L=45 THEN X (B)=X-5
    72 IF L=45 THEN Y (B)=Y(A) GOTO 90
    80 Y(B)=Y(A)-5xCOS (45-L)
    90 PRINT X (B), Y(B)


    пример в BASIC
    к сожалению не умею округлять

    Изображения

    Сообщение было отредактировано 9 раз, последнее редактирование пользователем Barnaul ().

  • можо ещё ввести функцию FOR L=0 TO 90 STEP 1
    ну и пaрy условий IF когда угол L равен 0° и 90°


    программа написана для угла в 45 градусов в точке А, при другом угле в этой точке нужно внести изменения в программу

    Сообщение было отредактировано 4 раз, последнее редактирование пользователем Barnaul ().

  • Цитата

    Со слов пользователя el_vital
    если я сам от руки, то я могу при любом угле алфа вырешать точьку Б, изменяя формулу. А вот мне то надо одну универсальную формулу, которой при любой алфа можно с 25, 5 Пикселей и 45° вырешать Б.


    Мне всёже кажеца что надо имменно изходить из того что угол нарисованный на ресунке красным всегда одинаковый.


    Длина отрезка от начала координат до синий точки
    c=sqrt(a*a - 2*a*b*Cos(betta) + b*b)
    угол между отрезком B и отрезком А gamma=arctg(b*Sin(betta) / (a - b*Cos(betta)))
    где а=25, b=5, betta=45.


    Эти значения можно вычислить и использовать как константы, тогда координаты синей точки:
    X (B)=c*Cos(alfa-gamma)
    Y(B)=c*Sin(alfa-gamma)

    Сообщение было отредактировано 1 раз, последнее редактирование пользователем I+L+Y+A ().