Показать сообщение отдельно
Старый 19.11.2016, 02:10
Garzovic вне форума Посмотреть профиль Отправить личное сообщение для Garzovic Найти все сообщения от Garzovic
  № 1  
Ответить с цитированием
Garzovic

Регистрация: Nov 2016
Сообщений: 3
По умолчанию Проблема с радиусом окружности

С помощью цикла создаю несколько точек, которые располагаются по окружности с радиусом 200, но после компиляции расстояние между центром окружности и точками не у всех одинаковое. Как это можно исправить?


Код AS3:
public function getCoordinates(centerPoint:Point,lengthLine:Number,angleInDegree:Number):Point
{
	const ANGLE_IN_RADIANS:Number = angleInDegree * Math.PI / 180;
 
	//Стороны:
	const SIDE_C:Number = lengthLine;
	const SIDE_B:Number = Math.sin(ANGLE_IN_RADIANS) * SIDE_C;
	const SIDE_A:Number = Math.cos(ANGLE_IN_RADIANS) * SIDE_C;
 
	return new Point(centerPoint.x - SIDE_B, centerPoint.y - SIDE_A);
}
 
 
const POINT_OF_IMPEDIMENT:Point = new Point(400, 400); 
const AMOUNT_OF_THE_POINTS_AROUND_THE_IMPEDINT:int = 360 / 36;
 
for (var indexThePointAroundTheImpediment:int = 0; indexThePointAroundTheImpediment < AMOUNT_OF_THE_POINTS_AROUND_THE_IMPEDINT; indexThePointAroundTheImpediment++)
{
	const ANGLE_OF_POINT:int = 36 * indexThePointAroundTheImpediment;
	const COORDINATES_THE_POINT_AROUND_THE_IMPEDIMENT:Point = this.getCoordinates(POINT_OF_IMPEDIMENT, 200, ANGLE_OF_POINT);
	const DISTANCE_BETWEEN_THE_POINT_AND_THE_IMPEDIMENT:Number = Point.distance(COORDINATES_THE_POINT_AROUND_THE_IMPEDIMENT, POINT_OF_IMPEDIMENT);
 
	trace(DISTANCE_BETWEEN_THE_POINT_AND_THE_IMPEDIMENT);
}

200
200
200
200
200.00000000000003
200
200
200.00000000000003
199.99999999999997
200.00000000000003