2016-06-03 7 views
2

Как я могу прочитать данные из файла и построить прямоугольник? Данный текстовый файл имеет следующий формат до 50 строк: x1 y1 x2 y2 x3 у3 x4 у4Я хочу построить прямоугольник с данными 4 координатами в текстовом файле в gnuplot. Прямоугольник может быть под углом к ​​оси x

где (x1, y1), (х2, у2), (х3, у3) и (x4, y4) - четыре вершины прямоугольника. Прямоугольники имеют случайную ориентацию. Как построить серию прямоугольников в gnuplot?

Если кто-то может сказать мне, как читать из файла при использовании объекта set polygon, это также может быть полезно что я хочу: установить объект polygon from to to.

Или, есть ли другой простой код в gnuplot? Альтернативно, есть ли решение python?

ответ

1

Мой Gnuplot решение (а не только для прямоугольников, но любой вид полигонов):

plot 'rectal.dat' u 1:2:($3-$1):($4-$2) with vectors nohead lc 1 title 'Rectangle', \ 
'' u 3:4:($5-$3):($6-$4) with vectors nohead lc 1 notitle, \ 
'' u 5:6:($7-$5):($8-$6) with vectors nohead lc 1 notitle, \ 
'' u 7:8:($1-$7):($2-$8) with vectors nohead lc 1 notitle 

enter image description here из

-0,5 -0,5 -1 1 -0,5 2 0 1

1

Вот код Python для этого, как мы обсуждали.

Ваш входной файл имеет формат:

__ __ x1 y1 x2 y2 x3 y3 x4 y4 

код.

import numpy as np 
import matplotlib.pyplot as plt 

data = np.loadtxt('car.txt') 
data = [i[2:] for i in data] 
for d in data: 
    Xs = d[::2] 
    Ys = d[1::2] 
    for i in range(4): 
     if i < 3: 
      plt.plot([Xs[i],Xs[i+1]],[Ys[i],Ys[i+1]],'k-',lw=2) 
     elif i == 3: 
      plt.plot([Xs[i],Xs[0]],[Ys[i],Ys[0]],'k-',lw=2) 

plt.show()