2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу 1, 2, 3  След.
 
 как сделать "равноправное" пересечение линий?
Сообщение23.10.2014, 03:45 


28/11/11
2884
Есть две цветные линии. Мне не нравится, что в точках пересечения есть какая-то выбранная линия: которая отрисовывается поверх другой, и цвет которой в месте пересечения преобладает. Пример (не обращайте внимания на серую сетку):
Изображение

Я пробовал избежать этого в программах $\LaTeX$ и MS Excel, пока безрезультатно. Даже добавление линиям прозрачности в $50\%$ не делает их "равноправными": всё равно видно, что одна поверх другой идёт.

Можно ли этого избежать? Наверное, для этого нужно разбираться в цветах...

 Профиль  
                  
 
 Re: как сделать "равноправное" пересечение линий?
Сообщение23.10.2014, 05:22 
Заслуженный участник
Аватара пользователя


31/01/14
11064
Hogtown
longstreet в сообщении #922203 писал(а):
Даже добавление линиям прозрачности в $50\%$


Ну разумеется: если и верхняя и нижняя линии одинаково прозрачны, то верхняя доминирует.

И вообще, какого цвета Вы хотите сделать пересечение?

 Профиль  
                  
 
 Re: как сделать "равноправное" пересечение линий?
Сообщение23.10.2014, 05:36 


28/11/11
2884
Я хочу, чтобы области пересечения были "усреднённного", смешанного цвета; чтобы не было "доминирущей" линии. Так, что если эти две линии обменялись бы друг с другом цветами, то цвет пересечения бы не поменялся от этого. Возможно ли это для цветных линий? (Для оттенков серого понятно что возможно.)

 Профиль  
                  
 
 Re: как сделать "равноправное" пересечение линий?
Сообщение23.10.2014, 07:36 
Заслуженный участник
Аватара пользователя


31/01/14
11064
Hogtown
А что такого усредненный цвет?

Я не видел подобных обсуждений ни на каком форуме, посвященном ТеХ (включая исключительно pgf/tikz).

 Профиль  
                  
 
 Re: как сделать "равноправное" пересечение линий?
Сообщение23.10.2014, 10:36 
Аватара пользователя


02/01/14
292
Картинка сделана примитивным рисовальщиком в Word.
Изображение
Прозрачность всех прямоугольников равна 50%. Синий левый на заднем плане, синий правый на переднем.
Играя прозрачностью, можно получить желаемый смешанный цвет.
Думаю, примерно так во всех графических редакторах.

 Профиль  
                  
 
 Re: как сделать "равноправное" пересечение линий?
Сообщение23.10.2014, 13:19 
Заслуженный участник
Аватара пользователя


31/01/14
11064
Hogtown
В ТеХ это делается так


Используется синтаксис LaTeX
\begin{tikzpicture}
\draw[line width=10pt, red] (0,0)--(3,3) node[right]{opacity=1};
\draw[line width=10pt, blue, opacity=.2] (1,0)--(0,1) node[left]{opacity=.2};
\draw[line width=10pt, blue, opacity=.3] (2,0)--(0,2) node[left]{opacity=.3};
\draw[line width=10pt, blue, opacity=.4] (3,0)--(0,3) node[left]{opacity=.4};
\draw[line width=10pt, blue, opacity=.5] (4,0)--(0,4) node[left]{opacity=.5};
\draw[line width=10pt, blue, opacity=.6] (5,0)--(0,5) node[left]{opacity=.6};
\end{tikzpicture}


Вложения:
opacity.pdf [11.08 Кб]
Скачиваний: 213
 Профиль  
                  
 
 Re: как сделать "равноправное" пересечение линий?
Сообщение23.10.2014, 13:34 


28/11/11
2884
Red_Herring в сообщении #922222 писал(а):
А что такого усредненный цвет?

Я не знаю точно, но есть же всякие модели цветов типа RGB. Может, нужно что-то проделать с этими значениями цветов, чтобы смешать два цвета "равноправно"...

Red_Herring в сообщении #922222 писал(а):
Я не видел подобных обсуждений ни на каком форуме, посвященном ТеХ (включая исключительно pgf/tikz).

Вопрос получился общий, необязательно $\TeX$. И я тоже не встречал подобного.

zvm в сообщении #922263 писал(а):
Синий левый на заднем плане, синий правый на переднем.

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

Red_Herring, за $\TeX$ пример с прозрачностью -- спасибо, красиво. Но не отвечает на вопрос.

 Профиль  
                  
 
 Re: как сделать "равноправное" пересечение линий?
Сообщение23.10.2014, 15:38 


28/11/11
2884
Нашёл такой сайт, который позволяет смешивать цвета. Там от очерёдности цветов ничего не зависит -- я именно такое смешение и искал (равноценное выдавливанию красок из тюбиков и перемешиванию до однородного цвета).

 Профиль  
                  
 
 Re: как сделать "равноправное" пересечение линий?
Сообщение23.10.2014, 22:06 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Если "логически" один прямоугольник поверх другого, то верхний надо делать на 50 % прозрачным, а нижний - на 100 % непрозрачным. Тогда получится цвет, образованный равной смесью одного и другого. (Хотя зрительно он может восприниматься как доминирующий один или другой - зависит от цветов линий, толщины, цвета фона. Это уже вопрос зрительных иллюзий.)

-- 23.10.2014 23:07:01 --

(Надо задать этот вопрос знакомому пятикласснику.)

 Профиль  
                  
 
 Re: как сделать "равноправное" пересечение линий?
Сообщение24.10.2014, 03:25 
Заслуженный участник
Аватара пользователя


31/01/14
11064
Hogtown
Идея с прозрачностью не очень удачна, т.к. она сохраняется вне пересечения. pgf/tikz может мешать цвета без прозрачности

$\begin{tikzpicture}
\fill [red] (2.5,2.5) circle  (1.5);
\fill[blue] (0,2) rectangle (5,3);
\fill[green] (2,0) rectangle (3,5);

\begin{span}\clip (2.5,2.5) circle  (1.5);
\fill [red!50!blue!50] (0,2)  rectangle  (5,3);
\fill [red!50!green!50] (2,0)  rectangle  (3,5);
\clip (0,2)  rectangle  (5,3);
\fill [red!33!green!33!blue!33] (2,0)  rectangle  (3,5);
\end{span}
\end{tikzpicture}$

span нужен для того чтобы ограничить действие \clip на будущее

-- 23.10.2014, 20:36 --

Pgf/tikz еще и градиенты знает
$\tikz\shade[shading=axis,bottom color=green!40,top color=blue!40,shading angle=-45] 
  (0,0) rectangle (3,3);
$

 Профиль  
                  
 
 Re: как сделать "равноправное" пересечение линий?
Сообщение13.11.2014, 17:19 


28/11/11
2884
Red_Herring в сообщении #922466 писал(а):
Идея с прозрачностью не очень удачна, т.к. она сохраняется вне пересечения.

Хорошая мысль, действительно.

Red_Herring в сообщении #922466 писал(а):
pgf/tikz может мешать цвета без прозрачности

Здорово! А Excel так умеет? У меня довольно сложный график, в $\TeX$ мне его не набрать.

 Профиль  
                  
 
 Re: как сделать "равноправное" пересечение линий?
Сообщение13.11.2014, 20:47 
Заслуженный участник
Аватара пользователя


31/01/14
11064
Hogtown
longstreet в сообщении #930507 писал(а):
Здорово! А Excel так умеет? У меня довольно сложный график, в $\TeX$ мне его не набрать.


Про Excel не знаю. Вообще MS с графикой обращался всегда безобразно.

О каком графике идет речь? Если о функциях то Tikz при помощи gnuplot работает

Если то, что называется chart то с этим я никогда не работал, но Tikz в версии 3 вроде ввел много нового именно здесь

 Профиль  
                  
 
 Re: как сделать "равноправное" пересечение линий?
Сообщение13.11.2014, 23:52 


28/11/11
2884
Red_Herring в сообщении #930590 писал(а):
Вообще MS с графикой обращался всегда безобразно.

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

Red_Herring в сообщении #930590 писал(а):
Если то, что называется chart

По-моему, графики типа моего называют plot.

Нечто типа такого:
Изображение

На R искал какое-то время код для подобного, но не нашёл. И фиг с ним, с равноправностью линий. Мне бы хоть как найти.

 Профиль  
                  
 
 Re: как сделать "равноправное" пересечение линий?
Сообщение14.11.2014, 03:28 
Заслуженный участник
Аватара пользователя


31/01/14
11064
Hogtown
longstreet в сообщении #930647 писал(а):
По-моему, графики типа моего называют plot.


Посмотрите Гл VI Data visualization. Но такие картинки как у Вас создаются в Tikz за несколько минут вручную. Поищите еще на http://www.texample.net/tikz/examples/

 Профиль  
                  
 
 Re: как сделать "равноправное" пересечение линий?
Сообщение14.11.2014, 13:09 


28/11/11
2884
Red_Herring в сообщении #930720 писал(а):
Гл VI Data visualization

Вы какую книгу/источник имели здесь в виду?

-- 14.11.2014, 13:16 --

По ссылке самые ближайшие примеры (раз, два) всё же слишком далеки.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 31 ]  На страницу 1, 2, 3  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group