21.12.2014, 21:01
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,108
|
|
Сообщение от nerv_
|
Находишь длину (модуль) вектора: sqrt(x^2 + y^2)
|
Сообщение от рони
|
var time = Math.sqrt(x*x + y*y)|0, // больше точек, чем это число на линии нет
|
генератор цепочек случайных данных
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
</head>
<body>
<script> var time = new Date();
function rund(e, f) {
function d(b) {
for (var a = b.length - 1; 0 < a; a--) {
var c = Math.floor(Math.random() * (a + 1)),
d = b[c];
b[c] = b[a];
b[a] = d
}
return b
}
var a = [],
c = [];
for (i = 0; i < e; i++) a[i] = i + f;
d(a);
return function () {
var b = a.shift();
c.push(b);
1 == a.length && (d(c), a = a.concat(c), c = []);
return b
}
};
var len = 360,
min = 1,
z = rund(len,min),
i;
var arr = [];
for (i = 0; i < 15000; i++) { //можно любой длины равномерность случайности сохранится или просто вместо random использовать z()
arr[i]= z()
}
alert((new Date).getTime() - time.getTime()); //10ms на генерацию 15000 вариантов
for (var i=0; i<arr.length; i++) {document.write(arr[i]+" ")}
//для примера
</script>
</body>
</html>
|
|
21.12.2014, 21:06
|
|
猫
|
|
Регистрация: 07.06.2007
Сообщений: 7,504
|
|
nerv_,
Как найти все x между x1 и x2?
и с y тоже самое.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
|
|
21.12.2014, 21:21
|
|
junior
|
|
Регистрация: 29.11.2011
Сообщений: 3,924
|
|
Сообщение от Gozar
|
Как найти все x между x1 и x2?
|
от 0 до 1 бесконечное количество точек
Можно задать неравенством / множеством. Но тебе данные случаи, как я понял, не нужны.
Скорее всего ты поставил задачу неправильно, вследствии чего можешь найти решение. Попробуй сформулировать задачу в более общем виде.
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
|
|
21.12.2014, 21:42
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,108
|
|
на всякий случай случайный ... но медленнее(чуть) и конечно менее случайный (зато свой random, не использует встроенный метод Math.random)
http://chancejs.com/
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
</head>
<body>
<script type="text/javascript" src="http://chancejs.com/chance.js"></script>
<script> var time = new Date();
var arr = [];
for (var i=0; i<15000; i++) {arr[i]=chance.integer({min: 1, max: 360})}
alert((new Date).getTime() - time.getTime()); //10ms на генерацию 15000 вариантов
for (var i=0; i<arr.length; i++) {document.write(arr[i]+" ")}
</script>
</body>
</html>
Последний раз редактировалось рони, 21.12.2014 в 21:53.
|
|
21.12.2014, 22:18
|
|
猫
|
|
Регистрация: 07.06.2007
Сообщений: 7,504
|
|
Сообщение от nerv_
|
Скорее всего ты поставил задачу неправильно, вследствии чего можешь найти решение. Попробуй сформулировать задачу в более общем виде.
_____
|
2 страницы назад задачу решили и даже в 2х практически равнозначных по скорости вариантах. Один алгоритм я переписал с java, а второй подсказал JsLoveR, за что ему отдельное спасибо!
Если хочешь могу написать, что нужно найти не все точки прямой, а координаты всех точек отрезка прямой на плоскости. Хотя я думал что если canvas то должно быть понятно, что на плоскости. Хотя я уже подумываю о нахождении точек кривой безье
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
|
|
21.12.2014, 22:24
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
Сообщение от Gozar
|
Если хочешь могу написать, что нужно найти не все точки прямой, а координаты всех точек отрезка прямой на плоскости.
|
зависит от точности... вообще - их бесконечно много. квантовать как будем?)
Сообщение от nerv_
|
от 0 до 1 бесконечное количество точек
|
запахло матаном
|
|
21.12.2014, 22:29
|
|
猫
|
|
Регистрация: 07.06.2007
Сообщений: 7,504
|
|
Сообщение от melky
|
квантовать как будем?)
|
попиксельно. canvas значит растр, значит попиксельно. чего здесь бесконечно много искать?
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
|
|
21.12.2014, 23:53
|
|
junior
|
|
Регистрация: 29.11.2011
Сообщений: 3,924
|
|
Сообщение от Gozar
|
попиксельно. canvas значит растр, значит попиксельно. чего здесь бесконечно много искать?
|
ну, как бы scale() ...
Сообщение от Gozar
|
хотя я думал что если canvas то должно быть понятно, что на плоскости
|
Понятно было из координат. У канвы есть 3d если что
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
|
|
21.12.2014, 23:59
|
|
猫
|
|
Регистрация: 07.06.2007
Сообщений: 7,504
|
|
Сообщение от nerv_
|
У канвы есть 3d если что
|
Сообщение от Gozar
|
Как получить все точки отрезка прямой (на canvas)?
Известно x1, y1, x2, y2
|
В условии задачи нет z1, z2, если что
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
|
|
26.12.2014, 04:15
|
Профессор
|
|
Регистрация: 14.03.2012
Сообщений: 1,808
|
|
Любая метрическая система делит что-то на секции с определнной погрешностью.
В нашем случае секции - это пиксели. Например прямая длиной 137px имеет 137 точек.
Gozar
x2 - x1 = x длина первого катета
y2 - y1 = y длина второго катета
Квадрат гипотинузы равен сумме квадратов катетов...
Если хочется получить кординаты какой то точки на гипотинузе то составляй тройную пропорцию.
Надеюсь я правильно понял вопрос
__________________
Научу себя плохому
Последний раз редактировалось l-liava-l, 26.12.2014 в 04:17.
|
|
|
|