Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.93
Alex1991
1 / 1 / 0
Регистрация: 03.12.2008
Сообщений: 34
#1

Нужно вставить в прогу правильную формулу(С++) - C++

27.06.2009, 23:55. Просмотров 1836. Ответов 23
Метки нет (Все метки)

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

вот сам код проги:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#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;
}
Он обьяснил что нужно делать так:
Стартовый угл: atan 2 (y-y1,x-x1)
Конечный угл: стартовый + угл поворота

Как это сделать??Заранее спасибо!!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4817 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
02.07.2009, 10:55     Нужно вставить в прогу правильную формулу(С++) #21
Код
Должны быть реализованные подпрограммы рисования дуги круга заданной:
координатами центра, координатами стартовой точки и величиной угла
координаты центра отсчитываются от левого верхнего угла, если не юзать imgx, imgy
accept
4817 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
03.07.2009, 03:11     Нужно вставить в прогу правильную формулу(С++) #22
тут для всех четвертей, координаты задаются типа 100,100 200,200 угол можно положительный отрицательный, но там особенности, что типа отрицательный это такой положительный, просто такой большой и так далее

одной формулой там не обошлось - пришлось добавить перемычку, в принципе когда точки подсветил, стало ясно, что оно не так рисует (то есть, несмотря на то, что угол вычисляется правильно, радиус правильно и рисовальная функция задаётся правильно, надо подгонять формулу под особенности bcc) я их выносить не стал, а прямо в формуле подогнал, но это требует вынесения в отдельную функцию, которая будет правильно их учитывать, и которую для другого компилятора с другим рисованием можно переделать
Вложения
Тип файла: zip drawarc.zip (1.1 Кб, 19 просмотров)
Alex1991
1 / 1 / 0
Регистрация: 03.12.2008
Сообщений: 34
03.07.2009, 11:43  [ТС]     Нужно вставить в прогу правильную формулу(С++) #23
во сложная прога мне попалась:'(
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.07.2009, 12:10     Нужно вставить в прогу правильную формулу(С++)
Еще ссылки по теме:

даны 2 последовательности в файлах, в двух разных, нужно их обьединить и отсортировать по возрастанию. Но нужно сделать прогу с помошью указателей C++
Нужно запрограммировать формулу C++
Сколько нужно убрать из данной последовательности скобок, чтобы получить правильную последовательность? C++
Нужно вставить формулу в программу C++
Кто знает как исправить формулу и запустить прогу C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
}{ottab
14 / 13 / 3
Регистрация: 04.03.2009
Сообщений: 75
03.07.2009, 12:10     Нужно вставить в прогу правильную формулу(С++) #24
Ну впринцепе я невижу ошибки в исходном коде.
double y2=y1-y; //вычисляется координата начальной точки если начало координат сместить в центр круга.
double fi=(y2/r);// вычисляем синус начального угла угла
double fs=rad(sinh(fi)); // вычисляем угол начальный в градусах.

PS. r радиус круга.
Yandex
Объявления
03.07.2009, 12:10     Нужно вставить в прогу правильную формулу(С++)
Ответ Создать тему
Опции темы

Текущее время: 11:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru