2011-12-31 2 views
4

Я хочу, чтобы создать сюжет вроде следующегоКак тень участок в Mathematica

enter image description here

Я не уверен, как создать штриховку, даже если я могу получить кадр сделан. Я хотел бы узнать общий подход к оттенку определенных областей в сюжете в Mathematica. Пожалуйста помоги. Спасибо.

ответ

8

Возможно, вы ищете RegionPlot?

RegionPlot[(-1 + x)^2 + (-1 + y)^2 < 1 && 
x^2 + (-1 + y)^2 < 1 && (-1 + x)^2 + y^2 < 1 && x^2 + y^2 < 1, 
{x, 0, 1}, {y, 0, 1}] 

Mathematica graphics

5

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

pts = RandomReal[{0, 1}, {10000, 2}]; 
pts = Select[pts, 
    And @@ Table[Norm[# - p] < 1, {p, 
    {{0, 0}, {1, 0}, {1, 1}, {0, 1}}}] &]; 
Graphics[{Thick, 
    Line[{{0, 0}, {1, 0}, {1, 1}, {0, 1}, {0, 0}}], 
    Circle[{0, 0}, 1, {0, Pi/2}], 
    Circle[{1, 0}, 1, {Pi/2, Pi}], 
    Circle[{1, 1}, 1, {Pi, 3 Pi/2}], 
    Circle[{0, 1}, 1, {3 Pi/2, 2 Pi}], 
    PointSize[Small], Point[pts] 
}] 

Mathematica graphics

+1

Интересно, почему некоторые моменты, кажется, «утечка»: [нажмите здесь, чтобы увидеть] (Http: //i.stack .imgur.com/O9tBA.png) Возможно, будет некорректное округление или другая неточность при рендеринге графики. Обратите внимание, что они просачиваются только на верхний левый край. – Szabolcs

+1

Оригинальный пост, похоже, имеет этот эффект. Конечно, точки имеют положительный диаметр. Эффект кажется хуже с использованием PointSize [Large] и не совсем так плохо с PointSize [Tiny]. –

7

Обратите внимание на использование от op_ в следующем (только один комплект уравнений для кривых и пересечения):

t[op_] :=Reduce[op[(x - #[[1]])^2 + (y - #[[2]])^2, 1], y] & /@ Tuples[{0, 1}, 2] 
tx = Texture[[email protected][NormalDistribution[1, .005], 1000 {1, 1}]]; 

Show[{ 

    Plot[y /. ToRules /@ #, {x, 0, 1}, PlotRange -> {{0, 1}, {0, 1}}] &@ t[Equal], 
    RegionPlot[And @@ #, {x, 0, 1}, {y, 0, 1}, PlotStyle -> tx] &@ t[Less]}, 

Frame->True,AspectRatio->1,FrameStyle->Directive[Blue, Thick],FrameTicks->None] 

enter image description here

Смежные вопросы