Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.06.2009, 15:03   #1
Olya90
Форумчанин
 
Аватар для Olya90
 
Регистрация: 16.03.2009
Сообщений: 125
Подмигивание Нужно передалать одну строчку в коде (С++)

Привет всем)) Помогите пожалуйста вставить в прогу правильную формулу.
Вот сама задача:
Должны быть реализованные подпрограммы рисования дуги круга заданной:
координатами центра, координатами стартовой точки и величиной угла

Препод обьяснил что нужно делать так:
Стартовый угл: atan 2 (y-y1,x-x1)
Конечный угл: стартовый + угл поворота

Код:
#include <graphics.h>
#include <stdio.h>
#include <math.h>
#include <conio.h>
double rad(double f)
{
  return 180*f/3.14159265358979;
}

void Build(int x,int y,int x1,int y1,int f)
{
  double r=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));
  int gd=DETECT,gm=0;
  initgraph(&gd,&gm,"D:\\TC\\BGI");
  double y2=y1-y;
  double fi=(y2/r);
  double fs=rad(sinh(fi)); //препод сказал вот здесь у меня ошибка(а именно не та формула)
  if (x<=x1 && y<=y1) fs=fs; else
  if (x<x1 && y>y1) fs=270+fs; else
  if (x>x1 && y<y1) fs=90+fs;     else
  fs=180+fs;
  arc(x,y,fs,f+fs,r);
}

int main()
{
printf("Write center coord "); int x,y; scanf("%d %d",&x,&y);
printf("Write start coord "); int x1,y1; scanf("%d %d",&x1,&y1);
printf("Write angle "); int f; scanf("%d",&f);
clrscr();
Build(x,y,x1,y1,f);
getch();
return 0;
}
Как это сделать??Заранее спасибо!!
Если помогла нажмите на весы
Olya90 вне форума Ответить с цитированием
Старый 29.06.2009, 17:23   #2
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

Код:
void Build(int x,int y,int x1,int y1,int f)
{
  double r=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));
  double fs=rad(atan2(y-y1,x1-x));
  arc(x,y,fs,f+fs,r);
}
Black Fregat вне форума Ответить с цитированием
Старый 29.06.2009, 21:46   #3
Olya90
Форумчанин
 
Аватар для Olya90
 
Регистрация: 16.03.2009
Сообщений: 125
По умолчанию

Спасибо...
Значит строчка
Код:
double rad(double f)
{
  return 180*f/3.14159265358979;
}
уже не нужна ??
Если помогла нажмите на весы
Olya90 вне форума Ответить с цитированием
Старый 29.06.2009, 21:53   #4
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

Цитата:
Сообщение от Olya90 Посмотреть сообщение
Спасибо...
Значит строчка
Код:
double rad(double f)
{
  return 180*f/3.14159265358979;
}
уже не нужна ??
Эта функция нужна.
profi вне форума Ответить с цитированием
Старый 29.06.2009, 21:57   #5
Olya90
Форумчанин
 
Аватар для Olya90
 
Регистрация: 16.03.2009
Сообщений: 125
Смех

Цитата:
Сообщение от Black Fregat Посмотреть сообщение
Код:
void Build(int x,int y,int x1,int y1,int f)
{
  double r=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));
  double fs=rad(atan2(y-y1,x1-x));
  arc(x,y,fs,f+fs,r);
}
Спасибо огромное !!
Правда вы здесь чуть-чуть не дописали
Код:
void Build(int x,int y,int x1,int y1,int f)
{
  double r=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));
  int gd=DETECT,gm=0;
  initgraph(&gd,&gm,"D:\\TC\\BGI");
  double fs=rad(atan2(y-y1,x1-x));
  arc(x,y,fs,f+fs,r);
}
Цитата:
Сообщение от profi Посмотреть сообщение
Эта функция нужна.
И вам спасибо!!)))
Если помогла нажмите на весы

Последний раз редактировалось Stilet; 30.06.2009 в 09:15.
Olya90 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как в C++ организовать ввод данных в одну строчку? amdbodia Общие вопросы C/C++ 10 16.05.2009 18:03
нужно разобраться в коде паскаля. in, out из файла [silver beast] Помощь студентам 6 22.01.2009 08:42
Нужно поменять 1 строчку, подскажите `envie Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 24.11.2008 21:59
Нужно полностью прокомментировать каждую строчку решеннной задач на С++, помогите, плиз!!!! Fialaka_444 Помощь студентам 1 22.12.2007 19:30
Нужно сделать одну задачу на ЯП Асемблер Rumba Помощь студентам 3 05.06.2007 19:42