Как контролировать пространство между ящиками в реболе? - PullRequest
1 голос
/ 04 сентября 2010

Обновление вопроса: я почти на месте, просто пропустил стиль пунктирной линии для сетки.alt text

сетка: [1100 600] шаговая сетка: 5 макс-n-точек: сетка / 1 / шаговая сетка x-axis-border: 20 Y-margin: 10

max-random: 1000 n-точек: 300

get-random-data: func[n p][
  block: copy []
  repeat i n [
    append block RANDOM p
  ]
  block
]

get-extremes: func[block][
  extreme: none
  foreach element block [
    if none? extreme [
      extreme: copy []
      repeat i 2 [append extreme element]
    ]
    if element > extreme/1 [
      extreme/1: element
    ]
    if element < extreme/2 [
      extreme/2: element
    ]    
  ]
  extreme
]

data0: get-random-data n-points max-random


extremes: get-extremes data0
height: extremes/1 - extremes/2
ratio: (grid/2 - x-axis-border - (Y-margin * 2)) / height

data: copy []

foreach element skip data0 (n-points - max-n-points) [      
  append data to-integer (ratio * element)
]


plot: copy []
color: 0.0.0

append plot [
  pen green line
]
x: 0
foreach y data [
    append plot as-pair x (grid/2 - x-axis-border - Y-margin) - y
    x: x + 5
]

main: layout [
    origin 20x0
    space 1x1
    panel1: box 1100x580 black effect reduce [
    'line-pattern 4 4
    'grid 30x30 0x0 200.200.200
    'draw plot
    ]   
    panel2: box 1100x0 black 
    panel3: box 1100x20 black    
]

view main

=== предыдущий вопрос

Пространство между каждой рамкой слишком велико, и я не могу нарисовать пунктирную сетку, как это сделать?

plot: copy []
color: 0.0.0

append plot [line-pattern 4 4]
repeat x 400 [
    repeat y 200 [
        append plot compose [
            box (xy: 25 * as-pair x - 1 y - 1) (xy + 25)
        ]
    ]
]

main: layout [
    origin 0x0
    panel1: box 800x400 black effect reduce ['draw plot]   
    panel2: box 800x180 black 
    panel3: box 800x20 black    
]

view main

1 Ответ

1 голос
/ 05 сентября 2010

используйте ключевое слово пробела для управления интервалом

См. http://www.rebol.com/docs/view-guide.html#section-29

Также вы можете использовать 'сетку для рисования сетки

"grid Генерировать двумерную сетку линий. Это полезный фон для программ с графическим макетом. Необязательные аргументы: PAIR, который задает горизонтальный и вертикальный интервал между линиями сетки, PAIR, который определяет смещение первые строки, ПАРА, которая указывает ТОЛЩИНУ горизонтальных и вертикальных линий, и ПАРУ, который обеспечивает цвет линий. "

...