Search
Write a publication
Pull to refresh

Comments 7

Вот спасибо, добрый вы человек! Как это дело увидел, так решил по-быстрому пребросить это дело на Си, а оттуда переложить на LabVIEW (просто хочется иметь в коллекции). Думал на час работы, но я глубоко ошибался. Вначале за утренним кофе я закинул js код в ИИ, чтобы получить на Си. Оно мне выдало вот так:

int main() {
    int w = 99, t = 0, i, a, s, b, X, Y, Z, d;
    
    for (t++, i = 6000; i--; ) {
        // Simulate canvas drawing
        printf("Drawing at (%d, %d)\n", i % w, i / w);
        
        a = (i % w) / 50 - 1;
        s = b = 1 - i / 4000.0;
        X = t;
        Y = Z = d = 1;
        
        while (++Z < w && (Y < 6 - (32 < Z && 27 < X % w && X / 9 ^ Z / 8) * 8 % 46 || d || (s = (X & Y & Z) % 3 / Z, a = b = 1, d = Z / w))) {
            Y -= b;
            X += a;
        }
    }
    
    return 0;
}

Не особо рабочий код, ясень пень. Я когда начал править, узнал много нового (до этого я на js вообще ни строчки не писал). Вообще я был свято уверен, что он "Си-подобный". Но нет, там есть милые отличия. Так что сначала пришлось поковыряться, code runner в vscode помог. Более-менее рабочий Си-код я только на следующий день получил. Ну а дальше дело техники, в LabVIEW оно ещё страшнее выглядит:

Но работает (я интерполяцию выключил, иначе гифка лошадиных размеров будет):

В общем от этого небольшого этюда получил удовольствие, спасибо за наводку.

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

Эх, там очень по-дилетантски всё было с точки зрения js. Одно то, как я отладочную информацию поначалу выводил через fillText() прямо поверх картинки — сообщество будет ржать до слёз.

Фактически всё крутится вокруг одной-единственной строчки:

++Z<w&(Y<6-(32<Z&27<X%w&&X/9^Z/8)*8%46||d|(s=(X&Y&Z)%3/Z

И, вероятно, профессионал может сразу сказать, что там получится, а вот я понял не сразу, мне пришлось завести десяток временных переменных типа let tmp1=Z&27, ну и с типами повозиться — там же мешанина из целых и плавающей точки. Кроме того, я использовал не только LabVIEW, но и эзотерический компилятор CVI (хотя gcc тоже задействовал). Там довольно много времени положить придётся, чтобы воссоздать промежуточные шаги, но может за пару выходных и напишу, я подумаю.

Sign up to leave a comment.

Articles