Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Графика


Автор: Informatik 3.5.2003, 21:34
Помогите!!!! Кто знает, как написать прогу - "изобразить на экране отрезок, вращающийся в плоскости экрана вокруг точки, делящей отрезок в отношении 1:3" ? Очень надо!
Thanks

Автор: DENNN 4.5.2003, 12:54
Ты хоть язык знаешь? Или это коммерческое предложение :hoho

Автор: Kefir 4.5.2003, 14:26
smile.gif)
нууу..... да же и не знаааю..... такой сложный вопрос..... хммм.......
В школьном курсе геометрии изучается ф-ла окружности: x^2 + y^2 = R^2
попробуй использовать её ;). И не забывай про замечательную ф-лу угловой скорости вращения: омега = Фи/t. Сделай необходимые выводы сам - что использовать я тебе подсказал.

Автор: Molnienosetz 4.5.2003, 17:01
Самое простое (и медленное) - сикось-накось, т.е. через тригонометрию. ПЗН(Простота - залог надёжности.)

Автор: _IGOR 5.5.2003, 02:01
Я Думую..... тебе надо использовать DirectX 9.0 никак не меньше -))))) tounge.gif ,
Для решения этого вопроса, или накройняк OpenGL hehe.gif

ЕСЛИ СЕРЬЕЗНО , то в чем проблема то ? Вообще не знаешь как делать(проблема в расчете) или (как уже говорили) языка не знаешь??

Автор: Step 5.5.2003, 08:29
_IGOR жестокие у тебя шутки, человек щас риниться изучать, а когда изучит поймет что для его задачи это нафиг не нужно

Автор: Baa 5.5.2003, 13:46
Цитата(Informatik @ 3.5.2003, 21:34)
Помогите!!!! Кто знает, как написать прогу?

Я знаю, и что дальше?

Автор: HexoGenus 5.5.2003, 15:36
Учитывая что ты с такой простой задачей обращаешься, может ты еще какие ньюансы забыл уточнить, а то может тебе хватило бы программы на qbasic??? если на с++ то под дос или windows? если под windows то рисовать в окне или прямо на экране? а то я было собрался попробовать а потом задумался математика то тут и правда простая а вот как выводитьconfused.gif
вобщем или конкретизируй проблему или разбей на части или в раздел заказов smile.gif

Автор: DENNN 5.5.2003, 18:14
Цитата
вобщем или конкретизируй проблему или разбей на части или в раздел заказов


$$$$$$$$$$$$$$$$$ smile.gif smile.gif smile.gif smile.gif smile.gif smile.gif smile.gif smile.gif smile.gif smile.gif smile.gif smile.gif smile.gif smile.gif smile.gif smile.gif smile.gif

Автор: Informatik 5.5.2003, 23:04
Цитата(_IGOR @ 5.5.2003, 02:01)


ЕСЛИ СЕРЬЕЗНО , то в чем проблема то ? Вообще не знаешь как делать(проблема в расчете) или (как уже говорили) языка не знаешь??

Проблемы две: толком не знаю языка и сам принцип построения (расчеты и т.п.). Не знаю даже с чего начать....

Автор: Informatik 5.5.2003, 23:10
Цитата(Baa @ 5.5.2003, 13:46)
[QUOTE=Informatik,3.5.2003, 21:34] Я знаю, и что дальше?

Ну так помоги, плз.

Автор: Informatik 5.5.2003, 23:11
Цитата(Guest @ 5.5.2003, 23:08)
Цитата(HexoGenus @ 5.5.2003, 15:36)
если на с++ то под дос или windows?


На Си под DOS

Автор: acp 5.5.2003, 23:50
Пишешь
Код
void main(void)
{
initgraph(...);
//А вот сюда вставляешь твои построения, см. функцию line(), оператор for. IMHO больше почти ничего не надо.;)
closegraph(...);
}


Автор: _IGOR 5.5.2003, 23:56
Код
Проблемы две: толком не знаю языка и сам принцип построения (расчеты и т.п.). Не знаю даже с чего начать....


Если будет время , то чего-нибудь наклепаю!

Автор: _IGOR 6.5.2003, 01:29
Вот наклепал! Пришлось Bc2.0 устанавливать!!!!!!!!!!! hehe.gif (VC 6++ DOS не понимает)

Я специально наклепал не твою прогу, а похожую. Нижеприведенная прога уменьшает окружность. Точно по такому же принципу решается и твоя проблема(не забудь переписать в директорию с прогой egavga.bgi)

Код

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <dos.h>

void main()
{
   // request auto detection
  int gdriver = DETECT, gmode, errorcode;

//инициализация
  initgraph(&gdriver, &gmode, "");

 // read result of initialization
  errorcode = graphresult();

     if (errorcode != grOk)      //если возникли ошибки
   {
 printf("Graphics error: %s\n", grapherrormsg(errorcode));
 printf("Press any key to halt:");
 getch();

      exit(1);   //если были ошибки то надо выйти!
   }

  int iX=200;     //координаты и радиус
  int iY=200;
  int iRadius=50;

       for(int i=1;i<40;i++)//цикл на 40 шагов
       {
                          setcolor(255);
                          circle(iX,iY, iRadius-i);//рисуем окружность
                     delay(100);//небольшая задержка

                      setcolor(0);
                      circle(iX,iY, iRadius-i);//рисуем окружность (черным цветом)
          //т е стираем ее

       }

       printf("нажмите любую клавишу для завершения");
  getch();//нажмите любую клавишу для завершения
  closegraph();
}


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)