Вычисление 3-сторонней диаграммы Венна по радиусу и положению круга - PullRequest
0 голосов
/ 05 января 2019

Учитывая исходные данные для диаграммы Венна, например, A=10, B=15, C=12, A+B=5, B+C=3, A+C=2, A+B+C=1, мне нужно нарисовать диаграмму Венна с размерами окружностей, пропорциональными A, B и C, и их перекрытием пропорционально A + B, B + C и A + C. График не обязательно должен идеально соответствовать данным, но должен быть как можно ближе к нему (я предпочитаю более простой метод вычисления). Он должен правильно представлять случаи отсутствия перекрытия и когда один набор является подходящим подмножеством другого набора. Как бы я рассчитал правильное расположение и радиус кругов для данного размера холста (ширина / высота). Я смог найти математику для двухкруговой Венны . Кто-нибудь делал расчет 3 круга?

P.S. Числа в примере выше были случайными и могли быть недействительными.

Ответы [ 2 ]

0 голосов
/ 05 января 2019

Есть 8 областей, определенных 3-круговой диаграммой Венна. Если мы определим набор A как включающий двоичные числа от 0 до 7, для которых установлен 1-битный набор, B как для наборов с 2-битным набором, а C и набор с 4-битным набором, мы получим

A = {1, 3, 5, 7}; B = {2, 3, 6, 7}; C = {4, 5, 6, 7}

Каждое из этих чисел определило область на диаграмме, где 0 представляет область вне окружностей и внутри универсального набора: т.е. A' ∩ B' ∩ C'.

Вы знаете, как решить задачу с двумя кругами. Поэтому решите это для A и B (используя размеры A, B и A ∩ B), B и C, а также A и C. Это дает вам расстояния между центрами круга и размерами круга. Используйте три расстояния, чтобы нарисовать треугольник для этих круговых центров, затем нарисуйте круги вокруг этих центров. Если из-за этого внешняя область 0 имеет неправильный размер, вы можете уменьшить или развернуть всю настройку с 3 кругами, чтобы получить это право.

Это делает все регионы правильными - за исключением региона 7, пересечения всех трех множеств. Этот размер будет установлен от всех остальных - у вас нет выбора здесь. Поэтому он, вероятно, не будет иметь желаемый вами размер. Вам нужно будет поэкспериментировать, чтобы убедиться, что размер этого региона обычно достаточно близок к тому, что вы хотите. Мое краткое исследование подразумевает, что на диаграмме нет возможности использовать круги и всегда получать размеры всех восьми областей. Если вместо этого вы используете эллипсы или другие более общие фигуры, это должно быть возможно, но вам, кажется, нужны круги.

Обратите внимание, что если вы правильно решите задачу с 2 кругами, ситуация с непересекающимися кругами и подмножествами окружностей будет автоматически обработана. Например, если A и B не пересекаются, то области 3 и 7 будут пустыми, и ваше решение сделает два круга не перекрывающимися. Они, вероятно, коснутся, если вы используете очевидный алгоритм со своего сайта, на который ведут ссылки, но без наложения. Точно так же, если один набор является подмножеством другого, один круг будет внутри другого, хотя они, вероятно, коснутся. Если вы не хотите касания, алгоритм, позволяющий избежать этого, должен быть легким, если, конечно, у вас нет ситуации, когда два из трех ваших подходов равны.

0 голосов
/ 05 января 2019

Расстояние между окружностями A, B должно быть решением проблемы , состоящей из двух окружностей Венна, с площадью пересечения, равной (A+B) + (A+B+C) (или просто (A+B), если по вашему определению она включает (A+B+C) ). Аналогично для B, C пересечение составляет (B+C) + (A+B+C), а также для C, A.

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

Решение является уникальным и действует только в том случае, если действительны сами значения пересечений.

...