Расчет положения точек в круге

У меня сейчас немного пустого ума по этому 9X_sin поводу. У меня проблема, когда мне нужно 9X_math вычислить положение точек вокруг центральной 9X_algorithms точки, предполагая, что все они равноудалены 9X_circle от центра и друг от друга.

Количество баллов 9X_trigonometry может меняться, поэтому оно DrawCirclePoints(int x) Я уверен, что 9X_algorithm-design есть простое решение, но, хоть убей, я его 9X_cos просто не вижу :)

101
1

  • Все давали отличные ответы, безумно быстро, поэтом ...
13
Общее количество ответов: 13

Ответ #1

Ответ на вопрос: Расчет положения точек в круге

Учитывая длину радиуса r, угол t в радианах 9X_circle и центр круга (h, k), вы можете вычислить координаты 9X_cos точки на окружности следующим образом (это 9X_cosine псевдокод, вам придется адаптировать его 9X_arithmetic к вашему языку):

float x = r*cos(t) + h; float y = r*sin(t) + k; 

100
3

  • Хм ... ну, в шведской википедии сказано, что грех - это ось x, я знаю, что это небезопасный источник, но затем я и ...

Ответ #2

Ответ на вопрос: Расчет положения точек в круге

Точка под углом тета на окружности, центр 9X_circle которой равен (x0,y0), а радиус r равен (x0 + r cos theta, y0 + r sin theta). Теперь 9X_circle выберите значения theta, равномерно распределенные 9X_algorithm-design между 0 и 2pi.

80
1

  • (Конечно, значение пи равно 3,14, независи ...

Ответ #3

Ответ на вопрос: Расчет положения точек в круге

Вот решение, использующее C#:

void DrawCirclePoints(int points, double radius, Point center) { double slice = 2 * Math.PI / points; for (int i = 0; i < points; i++) { double angle = slice * i; int newX = (int)(center.X + radius * Math.Cos(angle)); int newY = (int)(center.Y + radius * Math.Sin(angle)); Point p = new Point(newX, newY); Console.WriteLine(p); } } 

Пример вывода 9X_cos DrawCirclePoints(8, 10, new Point(0,0));:

{X=10,Y=0} {X=7,Y=7} {X=0,Y=10} {X=-7,Y=7} {X=-10,Y=0} {X=-7,Y=-7} {X=0,Y=-10} {X=7,Y=-7} 

Удачи!

56
2

  • Отлично, спасибо! Именно то, что я искал.<p><sp ...

Ответ #4

Ответ на вопрос: Расчет положения точек в круге

Размещение числа по круговой траектории

// variable let number = 12; // how many number to be placed let size = 260; // size of circle i.e. w = h = 260 let cx= size/2; // center of x(in a circle) let cy = size/2; // center of y(in a circle) let r = size/2; // radius of a circle for(let i=1; i<=number; i++) { let ang = i*(Math.PI/(number/2)); let left = cx + (r*Math.cos(ang)); let top = cy + (r*Math.sin(ang)); console.log("top: ", top, ", left: ", left); } 

9X_geometry

10
0

Ответ #5

Ответ на вопрос: Расчет положения точек в круге

Используя один из приведенных выше ответов 9X_algorithms в качестве основы, вот пример Java / Android:

protected void onDraw(Canvas canvas) { super.onDraw(canvas); RectF bounds = new RectF(canvas.getClipBounds()); float centerX = bounds.centerX(); float centerY = bounds.centerY(); float angleDeg = 90f; float radius = 20f float xPos = radius * (float)Math.cos(Math.toRadians(angleDeg)) + centerX; float yPos = radius * (float)Math.sin(Math.toRadians(angleDeg)) + centerY; //draw my point at xPos/yPos } 

9
0

Ответ #6

Ответ на вопрос: Расчет положения точек в круге

Решение PHP:

class point{ private $x = 0; private $y = 0; public function setX($xpos){ $this->x = $xpos; } public function setY($ypos){ $this->y = $ypos; } public function getX(){ return $this->x; } public function getY(){ return $this->y; } public function printX(){ echo $this->x; } public function printY(){ echo $this->y; } } 
function drawCirclePoints($points, $radius, &$center){ $pointarray = array(); $slice = (2*pi())/$points; for($i=0;$i<$points;$i++){ $angle = $slice*$i; $newx = (int)($center->getX() + ($radius * cos($angle))); $newy = (int)($center->getY() + ($radius * sin($angle))); $point = new point(); $point->setX($newx); $point->setY($newy); array_push($pointarray,$point); } return $pointarray; } 

9X_mathematical

4
0

Ответ #7

Ответ на вопрос: Расчет положения точек в круге

Для полноты, то, что вы описываете как «положение 9X_algorithm точек вокруг центральной точки (при условии, что 9X_sine все они равноудалены от центра)», является 9X_maths не чем иным, как «полярными координатами». И 9X_algorithms вы запрашиваете путь к Convert between polar and Cartesian coordinates, который задается 9X_math как x = r*cos(t), y = r*sin(t).

4
0

Ответ #8

Ответ на вопрос: Расчет положения точек в круге

Вот как я нашел точку на круге с помощью 9X_sin javascript, вычислив угол (градусы) от вершины 9X_algorithms круга.

 const centreX = 50; // centre x of circle const centreY = 50; // centre y of circle const r = 20; // radius const angleDeg = 45; // degree in angle from top const radians = angleDeg * (Math.PI/180); const pointY = centreY - (Math.cos(radians) * r); // specific point y on the circle for the angle const pointX = centreX + (Math.sin(radians) * r); // specific point x on the circle for the angle 

4
0

Ответ #9

Ответ на вопрос: Расчет положения точек в круге

Мне пришлось сделать это в Интернете, поэтому 9X_sin вот кофе-версия ответа @ scottyab's выше:

points = 8 radius = 10 center = {x: 0, y: 0} drawCirclePoints = (points, radius, center) -> slice = 2 * Math.PI / points for i in [0...points] angle = slice * i newX = center.x + radius * Math.cos(angle) newY = center.y + radius * Math.sin(angle) point = {x: newX, y: newY} console.log point drawCirclePoints(points, radius, center) 

3
0

Ответ #10

Ответ на вопрос: Расчет положения точек в круге

Вот версия R, основанная на ответе @Pirijan 9X_algorithm выше.

points <- 8 radius <- 10 center_x <- 5 center_y <- 5 drawCirclePoints <- function(points, radius, center_x, center_y) { slice <- 2 * pi / points angle <- slice * seq(0, points, by = 1) newX <- center_x + radius * cos(angle) newY <- center_y + radius * sin(angle) plot(newX, newY) } drawCirclePoints(points, radius, center_x, center_y) 

2
0

Ответ #11

Ответ на вопрос: Расчет положения точек в круге

Угол между каждой из ваших точек будет 2Pi/x, поэтому 9X_sine вы можете сказать, что для точек n= 0 to x-1 угол от 9X_geometry определенной нулевой точки равен 2nPi/x.

Предположим, что 9X_cos ваша первая точка находится в (r,0) (где r - расстояние 9X_mathematics от центральной точки), тогда позиции относительно 9X_mathematical центральной точки будут следующими:

rCos(2nPi/x),rSin(2nPi/x) 

1
0

Ответ #12

Ответ на вопрос: Расчет положения точек в круге

Рабочее решение на Java:

import java.awt.event.*; import java.awt.Robot; public class CircleMouse { /* circle stuff */ final static int RADIUS = 100; final static int XSTART = 500; final static int YSTART = 500; final static int DELAYMS = 1; final static int ROUNDS = 5; public static void main(String args[]) { long startT = System.currentTimeMillis(); Robot bot = null; try { bot = new Robot(); } catch (Exception failed) { System.err.println("Failed instantiating Robot: " + failed); } int mask = InputEvent.BUTTON1_DOWN_MASK; int howMany = 360 * ROUNDS; while (howMany > 0) { int x = getX(howMany); int y = getY(howMany); bot.mouseMove(x, y); bot.delay(DELAYMS); System.out.println("x:" + x + " y:" + y); howMany--; } long endT = System.currentTimeMillis(); System.out.println("Duration: " + (endT - startT)); } /** * * @param angle * in degree * @return */ private static int getX(int angle) { double radians = Math.toRadians(angle); Double x = RADIUS * Math.cos(radians) + XSTART; int result = x.intValue(); return result; } /** * * @param angle * in degree * @return */ private static int getY(int angle) { double radians = Math.toRadians(angle); Double y = RADIUS * Math.sin(radians) + YSTART; int result = y.intValue(); return result; } } 

9X_mathematics

1
0

Ответ #13

Ответ на вопрос: Расчет положения точек в круге

Основываясь на ответе Дэниела выше, вот 9X_mathematical мой вариант использования Python3.

import numpy def circlepoints(points,radius,center): shape = [] slice = 2 * 3.14 / points for i in range(points): angle = slice * i new_x = center[0] + radius*numpy.cos(angle) new_y = center[1] + radius*numpy.sin(angle) p = (new_x,new_y) shape.append(p) return shape print(circlepoints(100,20,[0,0])) 

1
0