1

Тема: Трошки геометрії чи то тригонометрії.

Хаі. Ось дивіться яка в мене ідея. Є кнопки, їх треба якось розмістити. Ці кнопки являють собою щось типу меню. Ну я подумав - розміщати їх одна під одною - минуле століття. Тому вирішив розмістити їх по контуру кола. Ну от уявіть собі, ви намалювали циркулем коло. А тепер ми прикріпляємо до оцього намальованого кола кнопачки. І зрозуміло, що я, та й ніхто інший не збирається розміщати це все вручну. Тому я вирішив запитатись у вас формули, по котрій можна знайти координати для розміщення кнопачки. Я собі поки що це уявляю так. У нас є центр, нехай це початок координат, точка (0,0) Далі ми маємо радіус кола та кут, який буде вказувати нам, в якому місці кола розміщати кнопку. От дивіться.
http://не-дійсний-домен/65zxj.png
я просто дуже не розбираюсь в синусах косинусах і т.д.  Як зробити отаку штуку? Як віднайти координати позначенні знаком питання?

2 Востаннє редагувалося Singularity (01.01.2014 16:10:20)

Re: Трошки геометрії чи то тригонометрії.

var g = 100
x = Math.sin(Math.PI*(g/180))
y = Math.cos(Math.PI*(g/180))
Подякували: FakiNyan2

3

Re: Трошки геометрії чи то тригонометрії.

Singularity написав:
var g = 100
x = Math.sin(Math.PI*(g/180))
y = Math.cos(Math.PI*(g/180))

Плюс зсунути певним чином, бо додатні координати одночасно будуть лише у І чверті.

4

Re: Трошки геометрії чи то тригонометрії.

Singularity написав:
var g = 100
x = Math.sin(Math.PI*(g/180))
y = Math.cos(Math.PI*(g/180))

а радіус де?

5

Re: Трошки геометрії чи то тригонометрії.

от так зробив

btns[i] = new Rect(float.Parse((radius * Math.Cos(Math.PI * btnsDeg[i] / 180) + startX).ToString()),
                               float.Parse((radius * Math.Sin(Math.PI * btnsDeg[i] / 180) + startY).ToString()), 40, 40);

http://www.youtube.com/watch?v=sgZpIkHsUa8&&

6

Re: Трошки геометрії чи то тригонометрії.

float.Parse((radius * Math.Sin(Math.PI * btnsDeg[i] / 180) + startY).ToString())

У вас дівчини все нема, як я бачу...

7

Re: Трошки геометрії чи то тригонометрії.

koala написав:
float.Parse((radius * Math.Sin(Math.PI * btnsDeg[i] / 180) + startY).ToString())

У вас дівчини все нема, як я бачу...

десь, в підсвідомості, я розумів, що це все можна зробити простіше..

8

Re: Трошки геометрії чи то тригонометрії.

Ви взагалі знаєте, що роблять ToString і Parse?

9

Re: Трошки геометрії чи то тригонометрії.

koala написав:

Ви взагалі знаєте, що роблять ToString і Parse?

ту стрінг приводить до типу стрінг, а парс з стрінгу в флоат, в цьому випадку, просто там результат виходить в double, а треба, щоб був float, а parse приймає строку, тому я спочатку із double перевів в string, а з string  в float *HI*

10

Re: Трошки геометрії чи то тригонометрії.

Неочікувано

(float)(radius * Math.Sin(Math.PI * btnsDeg[i] / 180) + startY)

Втім, якщо затримки для вас критичні, раджу робити обчислення по одному кроку на сервері і клієнті позмінно, так  буде ще довше.

Подякували: FakiNyan1

11

Re: Трошки геометрії чи то тригонометрії.

koala написав:

Неочікувано

(float)(radius * Math.Sin(Math.PI * btnsDeg[i] / 180) + startY)

Втім, якщо затримки для вас критичні, раджу робити обчислення по одному кроку на сервері і клієнті позмінно, так  буде ще довше.

млинець! хД я вже забувся за таке приведення типів хД