Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Геометрия, система кординат, организовать функцыю JS (https://javascript.ru/forum/misc/66485-geometriya-sistema-kordinat-organizovat-funkcyyu-js.html)

ryslan-yc 18.12.2016 12:31

Геометрия, система кординат, организовать функцыю JS
 
Здравствуйте!
Вот делаю одно приложение в браузере где система кординат XY
также наклон объекта incline,
//наклон (0:в гору 90:вправо +-180:вниз -90:влево)
Нужно организовать метод obj.goo(); который будет вызывать метод
this.gooXY(стать по Х,стать по Y); учитывая наклон, если наклон 45 а
функция вызвана с аргументом 50 то логично стать this.gooXY(25,25);,
если наклон 90 то логично что нужно вызывать так this.gooXY(50,0);
и так далее :write: , нужно организовать этот метод:help: помогите

рони 18.12.2016 14:49

Цитата:

Сообщение от ryslan-yc
50 то логично стать this.gooXY(25,25);,

логично не 25, а 35.36 :-?
alert(Math.sqrt(35.36 * 35.36 + 35.36 * 35.36)|0);

Malleys 18.12.2016 18:43

var obj = {
	gooXY: function() { console.log.apply(console, arguments); }
};

obj.goo = function(radius, incline) {
	var point = fn(radius, incline);
	this.gooXY(point.x, point.y);

	// Сама функция, которая вычисляет координаты в зависимости от радиуса и наклона
	function fn(r, t) {
   		t = 90 - t;

		return {
			x: r * Math.cos(Math.PI * t / 180),
			y: r * Math.sin(Math.PI * t / 180)
		}
	}
};

obj.goo(50, 45);

рони 18.12.2016 19:19

Malleys,
вы уверены что строка 11 нужна?

Malleys 18.12.2016 19:31

Цитата:

Сообщение от рони (Сообщение 438343)
Malleys,
вы уверены что строка 11 нужна?

Да поскольку //наклон (0:в гору 90:вправо +-180:вниз -90:влево)

Т. е. углы у него отчитываются не так как обычно в полярных координатах(начиная с 0deg и против часовой стрелки), а начиная с 90deg и по часовой стрелке.

рони 18.12.2016 19:34

Malleys,
ок


Часовой пояс GMT +3, время: 00:56.