2011-01-10 2 views
4

Я хотел бы построить несколько, возможно, тысяч сегментов линии на одном 2D-графике в Mathematica. Эти сегменты линий будут определяться по алгоритму, который будет обнаруживать и сохранять конечные точки каждого сегмента. Как только алгоритм определил все сегменты линии в конечном домене 2D и диапазоне (например, x = 0,4 и y = 0,0,5), я хотел бы построить их на одном участке. Спасибо за любые предложения.участок нескольких сегментов линии на 2D-графике в Mathematica

ответ

5

Что-то вроде этого?

detectEndPoints := { 
    {RandomReal[{0, 4}], RandomReal[{0, 5}]}, 
    {RandomReal[{0, 4}], RandomReal[{0, 5}]}}; 

segments = Table[detectEndPoints , {1000}]; 

(* Graphics[Line /@ segments] Old Way *) 
Graphics[Line @ segments] (* Valid since V6. Thanks @Mark McClure *) 

alt text

НТН!

Редактировать

Перечитывая свой вопрос, я не уверен, что вы создаете непрерывную линию, определяя одну конечную точку в то время, или набор несвязных сегментов (как указано выше). Только в случае, если вы собираетесь непрерывный путь:

detectEndPointsV2[i_] := {Cos[2 Pi i 17/100], Sin[2 Pi 17 i/100]}; 
segments = Table[detectEndPointsV2[i], {i, 101}]; 
Graphics[[email protected]] 

alt text

+0

Обратите внимание, что, так как V6, вы можете использовать графики [Line @ сегментов] в обоих случаях; вам не нужно отображать линию на сегменты в первом случае. Это значительно ускоряет рендеринг. Делает большую разницу, если вы хотите построить, скажем, 10 000 сегментов. –

+0

@Mark Спасибо. Ред. –

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