thehighhomie, честно говоря не знаю зачем оно может понадобится при решении Вашей задачи, так как мне до конца не ясно что вы пытаетесь сделать. Данная формула является одним из звеньев преобразования декартовых координат в полярные, так же она используется для расчета длинны вектора, заданного координатами точек в декартовом пространстве.
В любом случае не торопитесь применять формулы, возможно расчет необходимо производить по другому. Напишите пожалуйста, что обозначают точки x1,y1 и x2,y2 и угол anglePI
Moskus, написал как комментарий к Вашему ответу по причине того, что он (Ваш ответ) близок к исчерпывающему, и еще один ответ тут просто не уместен. Также, мой комментарий не является ответом из-за своей неполноты, а является лишь демонстрацией еще одного подхода к решению части общей задачи.
По поводу HSB/HSV вы конечно правы, именно поэтому и было сказано что способ "самый простой" но и не говорилось что это "хорошее решение" )
сравнивать цвета проще всего вычисляя расстояние между цветами.
каждую составляющую считаем координатами на одной из координатных осей 3-х мерного пространства, например r - ось x, g - ось y, b - ось z.
Таким образом расстояние между 2-я цветами можно рассчитать по формуле:
l = sqrt( pow(r1-r2, 2) + pow(g1-q2, 2) + pow(b1-b2, 2) )
где:
r1, g1, b1 это значения красной, зеленой и синей компоненты первого цвета
r2, g2, b2 это значения красной, зеленой и синей компоненты второго цвета
чем больше будет расстояние l между 2я цветами, тем они менее похожи друг на друга.
Alex Gutter, вы напишите Ваше мнение, почему при Х=9, Y=5, правильный ответ 1,0 а не 0,1. Сам я что то не догоняю, и единственное что приходит на ум, это то что жуки более приоритетны чем края при выборе места, но это уже мои домыслы))))
с 94 года, сейчас уже давно пенсионер и занимаюсь этим как хобби. Причина - стал замечать что подтупливаю иногда (как пример - ваше задание, не увидел сразу косячка).
Alex Gutter, есть проблема, не могу понять почему должно получится 1,0, если делаю вручную (с учетом того что правая часть больше) то должно получатся 0,1.
Захар Шайков, если допускается что данные могут быть больше чем их хэш то условие Невозможность найти два разных сообщения с одинаковыми хеш-значениями. в принципе не может быть выполнено.
polikarpovst, при такой постановке задачи авторитетно уиверждаю что ни среднее арифметическое, ни среднее взвешенное найти невозможно, если не оговариватт отдельно дополнительные ограничения и принимаемые условности. Конкретно в вашем случае могу предлодить считать не среднее а суммарный вектор в 2х мерном просранстве. Но я не зная доя чего это вообще вам надо не могу гарантировать что суммарный вектор вам подойдет
polikarpovst, про 6, 13, 20 я не спрашивал среднее значение между парами, нужно среднее значение между всеми 3я цифрами за раз. Сами цифры подобраны таким образом, что если перевести их в углы то это будет 0, 120 и 240 градусов.
Опишите как по вашей логике посчитать среднее между этими 3я углами? (По моей логике сделать это невозможно, и среднее этих углов равно неопределенности)
polikarpovst, я так понимаю, что вы сами не представляете, как считать среднее значение не для пары цифр а например доя трех или более цифр. Спрошу подругому, для чего это нужно? Опишите, что вы хотите делать с этими цифрами на выходе?
polikarpovst, спрашиваю потому, что в случае как вы выразились циклических чисел вообще не может идти речи о среднем значении. Поэтому для того чтобы понять, что же вы хотите получить на выходе, нужна доп информация)))
углы чего? объекта на канвасе?