Редактирование: Суперэллипс и суперпарабола
Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия | Ваш текст | ||
Строка 4: | Строка 4: | ||
Суперэллипс и суперпарабола — кривые, обобщающие понятие эллипса и параболы на произвольную положительную степень. Ниже приведены простейшие интерактивные графики этих кривых ''(перемещение слайдера меняет показатель степени).'' | Суперэллипс и суперпарабола — кривые, обобщающие понятие эллипса и параболы на произвольную положительную степень. Ниже приведены простейшие интерактивные графики этих кривых ''(перемещение слайдера меняет показатель степени).'' | ||
+ | <addscript src=SEP/> | ||
+ | <htmlet nocache="yes">SEP_TM</htmlet> | ||
− | + | Текст программы построения графиков на языке JavaScript: <toggledisplay status=hide showtext="Показать↓" hidetext="Скрыть↑" linkstyle="font-size:default"> | |
− | |||
− | |||
− | |||
Файл '''"SEP.js"''' | Файл '''"SEP.js"''' | ||
− | < | + | <source lang="javascript" first-line="1"> |
// Суперэллипс и суперпарабола | // Суперэллипс и суперпарабола | ||
// Superellipse & superparabola (SEP) | // Superellipse & superparabola (SEP) | ||
− | // | + | // Разработчик А. М. Кривцов |
// 03.05.2014 | // 03.05.2014 | ||
− | |||
− | |||
// Интернет: tm.spbstu.ru/SEP | // Интернет: tm.spbstu.ru/SEP | ||
Строка 28: | Строка 25: | ||
var n = 2; | var n = 2; | ||
− | + | const fps = 50; // f rames per second - число кадров в секунду (качество отображения) | |
// Область построения графика | // Область построения графика | ||
− | + | const x_min = -2; | |
− | + | const x_max = -x_min; | |
− | + | const y_min = x_min; | |
− | + | const y_max = -x_min; | |
// Настройка элементов управления | // Настройка элементов управления | ||
Строка 52: | Строка 49: | ||
// Расчет параметров графики | // Расчет параметров графики | ||
− | + | const N = canvas.width; // число точек по оси x | |
− | + | const dx = x_max / N; // шаг по оси x | |
− | + | const sx = canvas.width / (x_max - x_min); // масштаб по оси x | |
− | + | const sy = canvas.height / (y_max - y_min); // масштаб по оси y | |
− | + | const X0 = canvas.width + x_min * sx; // положение 0 оси x в экранных координатах | |
− | + | const Y0 = canvas.height + y_min * sy; // положение 0 оси y в экранных координатах | |
draw(); // Отображение | draw(); // Отображение | ||
Строка 106: | Строка 103: | ||
for (var t = 0; t < 2 * Math.PI; t += Math.PI / 180) | for (var t = 0; t < 2 * Math.PI; t += Math.PI / 180) | ||
{ | { | ||
− | var x = | + | var x = Math.sign(Math.cos(t)) * Math.pow(Math.abs(Math.cos(t)), 2/n); |
− | var y = | + | var y = Math.sign(Math.sin(t)) * Math.pow(Math.abs(Math.sin(t)), 2/n); |
var X = X0 + x * sx; | var X = X0 + x * sx; | ||
Строка 116: | Строка 113: | ||
} | } | ||
context.stroke(); | context.stroke(); | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
} | } | ||
} | } | ||
− | </ | + | </source> |
Файл '''"SEP.html"''' | Файл '''"SEP.html"''' | ||
− | < | + | <source lang="html" first-line="1"> |
<!DOCTYPE html> | <!DOCTYPE html> | ||
<html> | <html> | ||
Строка 159: | Строка 147: | ||
// если введено не число - строка не пройдет валидацию по паттерну выше, и checkValidity() вернет false | // если введено не число - строка не пройдет валидацию по паттерну выше, и checkValidity() вернет false | ||
if (!this.checkValidity()) return; | if (!this.checkValidity()) return; | ||
− | app. | + | app.set_01(this.value); |
document.getElementById('Slider_01').value = this.value; | document.getElementById('Slider_01').value = this.value; | ||
"> | "> | ||
Строка 173: | Строка 161: | ||
</body> | </body> | ||
</html> | </html> | ||
− | </ | + | </source> |
− | </ | + | </toggledisplay> |
− | |||
Строка 194: | Строка 181: | ||
|<math>2</math> || окружность (эллипс) | |<math>2</math> || окружность (эллипс) | ||
|-align="center" | |-align="center" | ||
− | |<math>4</math> || | + | |<math>4</math> || сквиркл ([http://en.wikipedia.org/wiki/Squircle squircle]) |
|-align="center" | |-align="center" | ||
|<math>\infty</math> || квадрат (прямоугольник) | |<math>\infty</math> || квадрат (прямоугольник) | ||
|} | |} | ||
+ | |||
== См. также == | == См. также == | ||
Строка 203: | Строка 191: | ||
* [http://ru.wikipedia.org/wiki/%D0%A1%D1%83%D0%BF%D0%B5%D1%80%D1%8D%D0%BB%D0%BB%D0%B8%D0%BF%D1%81 Суперэллипс] (Википедия) | * [http://ru.wikipedia.org/wiki/%D0%A1%D1%83%D0%BF%D0%B5%D1%80%D1%8D%D0%BB%D0%BB%D0%B8%D0%BF%D1%81 Суперэллипс] (Википедия) | ||
* [http://en.wikipedia.org/w/index.php?title=Lp_space&action=edit L<sup>''p''</sup> space] (Wikipedia) | * [http://en.wikipedia.org/w/index.php?title=Lp_space&action=edit L<sup>''p''</sup> space] (Wikipedia) | ||
− | |||
− | |||
− | |||
− |