Есть ли способ случайного перемещения линий из одного места в другое? - PullRequest
1 голос
/ 08 февраля 2020

На самом деле я пытаюсь преобразовать этот JavaScript код для обработки кода. Но застрял.

var leftToRight = Math.random() >= 0.5;

    if(leftToRight) {
      context.moveTo(x, y);
      context.lineTo(x + width, y + height);    
    } else {
      context.moveTo(x + width, y);
      context.lineTo(x, y + height);
    }

    context.stroke();

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

void draw() {
  line(x1, y1, x2, y2);
  for(int i = 0; i < 1000; i++) {
    if(x1 == 0) {
      x1 = width;
      y1 = 0;
      x2 = 0;
      y2 = height;
      line(x1, y1, x2, y2);
    } else if(x1 == width) {
      x1 = 0;
      y1 = 0;
      x2 = width;
      y2 = height;
      line(x1, y1, x2, y2);
  }        
}

1 Ответ

3 голосов
/ 08 февраля 2020

Из-за характера вашего вопроса было сложно предположить, что именно вам нужно, ответили. Для простоты я предполагаю, что вы хотите преобразовать код Java в Обработка. Следовательно, я буду игнорировать то, что вы написали во втором фрагменте кода.

Код Java, по сути, выполняет следующие действия:

  1. Генерирует случайное число от 0,0 до 1,0 * 1006. *
  2. Выбирает один выход в зависимости от того, больше ли число 0,5:
    • Создает линию от (x, y) до (x + ширина, y + высота) или
    • Создает строка от (x + width, y) до (x, y + height).

Вот пример кода обработки, который может помочь вам в этом. Этот код очень близок к предоставленному вами фрагменту Java, так как это то, что вы просили.

int x = 0, y = 0;

if(random(0, 1) > 0.5) line(x, y, x + width, y + height);
else line(x + width, y, x, y + height);

При запуске холст покажет либо:

enter image description here

или это:

enter image description here

Надеюсь, это поможет.

...