Форум: Форум C++Разное
Новые темы: 00
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Задача с циклом
 
 автор: ZC   (29.06.2008 в 14:23)   письмо автору
 
 

задана окружность,
x = R*cos(t)
y = R*sin(t)
центр и радиус вводит пользователь, и дана точка которую тоже вводит пользователь, и если эта точка принадлежит окружности, то вычислить длину вектора L=sqrt((x-x0)в2-(y-y0)в2-Rв2), а если не принадлежит вывести на дисплей ошибку


double t,pi;
pi=2*3.1415926535;

for(t=0; t<pi; t+=0.001)
{

if ( (m_x = m_x0 + m_r*cos(t)) && (m_y = m_y0 + m_r*sin(t)) )
{
MessageBox("Принадлежит","result",MB_OK);
break;
}
else continue;


}


помогите решить...

  Ответить  
 
 автор: bronenos   (04.07.2008 в 11:46)   письмо автору
 
   для: ZC   (29.06.2008 в 14:23)
 

sqrt((x-x0)в2-(y-y0)в2-Rв2)

Что такое в?

  Ответить  
 
 автор: bronenos   (04.07.2008 в 12:06)   письмо автору
 
   для: ZC   (29.06.2008 в 14:23)
 


/* Квадрат числа */
#define sqr(num) ((num)*(num))

/* Центр и радиус */
int cx, cy, r;
/* Заданная точка */
int mx, my;

/* Вычисления */
int hb = r * sin(my);
int vb = r * cos(mx);

/* Выходит за радиус */
if (
  (mx>cx && mx>r) ||
  (mx<cx && mx<r) ||
  (my>cy && my>r) ||
  (my<cy && my<r)
printf("Out of radius");

/* Выходит за пределы */
else if ( 
  (mx>cx && mx>hb) ||
  (mx<cx && mx<hb) ||
  (my>cy && my>vb) ||
  (my<cy && my<vb)
printf("Out of border");

/* Считаем вектор */
else
{
  int v = sqrt(sqr(hb-mx) - sqr(vb-my) - sqr(r));
  printf("Vector size: %d", v);
}

  Ответить  
 
 автор: Trianon.   (04.07.2008 в 21:08)
 
   для: ZC   (29.06.2008 в 14:23)
 

Если точка принадлежит окружности, то длина вектора из центра в точку равна радиусу по определению.
Если речь о том, принадлежит ли точка кругу, то проще сравнить длину вектора с радиусом безо всяких циклов.

  Ответить  
 
 автор: bronenos   (04.07.2008 в 23:58)   письмо автору
 
   для: Trianon.   (04.07.2008 в 21:08)
 

Ну да, я как обычно ищу сложные пути :)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования