Space - reload test with critical positions to check drawing accuracy. Q - reload with random points positions, C - clear stage. Click on block - start timer & draw :). Don't click another block while drawing. Dimensional simplification script is an implementation of C code by @gtoal : https://scratch.mit.edu/projects/127747404/ Linear script is mine and based on linear formula for cubic Bezier curve from Wikipedia.
==ВЫВОДЫ== После отладки совместно с @gtoal выяснилось, что проблемы были в багах обоих скриптов. Сейчас оба кода работают корректно и результаты теста, наконец, стали более корректными, чем 20-тикратная потеря в скорости в обмен на некорректный расчёт базиса функции :). В целом, оба скрипта оказались взаимозаменяемы с той только разницей, что линейная формула может быть проще доработана до рекурсивного алгоритма, вычисляющего функцию Безье для N базовых точек, тогда как скрипт с вычислением промежуточных функций проще сделать на пару-другую измерений больше. ==ИНСТРУКЦИИ== Пробел - перезагрузка теста с критическими позициями базовых точек. Q - перезагрузка по случайным точкам. C - очистить сцену. Клик на блоке события - протестировать скрипт на время выполнения и аккуратность кривой. Не нажимайте на другой блок, пока идёт рисование, иначе перезагрузится таймер! Скрипт, упрощённого вычисления кривой является реализацией на Scratch кода с языка С и взят с разрешения @gtoal : https://scratch.mit.edu/projects/127747404/ . Скрипт, считающий линейную формулу кривой, написан мною по приведённой в Википедии формуле кубической кривой Безье.