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
11448
Hogtown
longstreet в сообщении #922203 писал(а):
Даже добавление линиям прозрачности в $50\%$


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

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

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


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

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


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

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

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


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

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


31/01/14
11448
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 Кб]
Скачиваний: 292
 Профиль  
                  
 
 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
11448
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
11448
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
11448
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, Супермодераторы



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

Сейчас этот форум просматривают: Lenchik


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

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