Рубрики
Без рубрики

PI Day, Raspberry Pi и командная строка

Используя компьютер PI Raspberry, попробуйте руку на отображении логотипа Raspberry Pi и номер PI в командной строке.

Автор оригинала: Johnny B. (Ionică Bizău).

Все знают (или должны знать), что есть номер PI. В основном, его значение определяется разделением окружности окружности до его диаметра. Это номер PI! Хорошая вещь в этом – это его иррациональный характер. Это означает, что у него есть много бесконечность десятичных средств.

Обычно PI аппроксимируется как 3.14. И сегодня 14 марта! Итак, Happy Pi Day!

У меня есть Raspberry Pi Компьютер вокруг, и я думал использовать два моих библиотеках для создания чего-то хорошего: отображение логотипа Raspberry Pi и номер PI в командной строке: это забавно, как он в основном стоит Raspberry Pi (изображение малины и номер PI). Я хотел еще одну вещь: используя цифровые знаки PI в выходных символах. Вот результат (см. Ниже, как я это сделал):

Как я это сделал

Чтобы отобразить изображения в терминале, я использовал image to-ascii Отказ Чтобы пройти разные URL-адреса изображений, я решил использовать аргументы командной строки.

Чтобы получить первый N Дебилицы числа PI, я использовал другой модуль, который я создал на этот раз в прошлом году: PI Отказ Этот модуль возвращает хорошее приближение PI:

const pi = require("pi");

console.log(pi(10));
// => '3.141592653'

Итак, я создал файл с именем index.js И я написал в нем следующие вещи (следуйте встроенным комментариям):

// Require the needed dependencies
// `pi` will be used to return the first `n` decimals of pi
const pi = require("pi")

      // image-to-ascii for displaying the images in the terminal
    , img = require("image-to-ascii")

      // We use this module to stringify the pixel matrix after
      // modifying the internal data (basically, the characters)
    , stringify = require("asciify-pixel-matrix")
    ;

// Take the image url/path from the command line arguments
img(process.argv[2], {
    // We turn off the stringifying, since we really want to do
    // some changes before displaying the images
    stringify: false
  , concat: false
}, (err, converted) => {
    // Handle the errors
    if (err) { return console.error(err); }

    // `converted` is an array of arrays (in fact, a matrix of pixels)
    // We use the `converted` matrix to know how many decimals we
    // need: width x height
    // `piNumber` will be a string in this format: "3.14...." (with a
    // lot of decimals)
    var piNumber = pi(converted.length * converted[0].length);

    // We will use this `i` variable to get the current index
    var i = -1;

    // For each row in the matrix
    converted.forEach(cRow => {
        // ...and for each pixel in the row
        cRow.forEach(px => {
            // ...update the character using a pi decimal, in order
            px.char = piNumber[i = ++i % piNumber.length];
        });
    });

    // Finally, stringify everything and display the result! Yay!
    console.log(stringify.stringifyMatrix(converted));
});

Требования к запуску этого сценария:

  • Node.js (я установил его на моей малине Pi, используя NVM )
  • График Magick : sudo apt-get install graphicmagick (Это необязательно, вид: если он не доступен Image-to-ascii будет составлять некоторые материалы C/C ++, но это, вероятно, займет много времени)
  • … и, конечно, NPM Зависимости: NPM I image-to-ascii pi asciify-pixel-matrix

С Днем Пи!

PS: Я разместил эту статью, используя My Raspberry Pi, подключенную к Интернету и используя 7 “дисплея. Просто идеально