# пара вопросов о программировании

## tradakad

Привет всем!

возникла небольшая задача - и даже не знаю как правильно объяснить - то ли графика это то ли нет. вобщем суть вопросов:

1) как и с помощью каких include нарисовать фигуру (ну квадрат или там треугольник) с указанными координатами в определенных точках, и потом закрасить цветом ( типа как в паскале библиотека graf была если не ошибаюсь) (вроде бы графика)

2) нужно вывести график (типа синусоиды) с указанными координатами по иксу и игрику. (а это уже и нет кажеться)

примечание (очень желательно) - должны использоваться такие возможности которые позволят скомпилировать и запустить программу в виндах.. написать нужно на с++

извините за глупые вопросы - к сожалению я не очень пока разбираюсь в этом  :Sad: 

заранее спасибо всем!

----------

## MegaDating

Могу на дельфи посказать...к сожалению в С++ не особо разбираюсь

----------

## d_n_k

тшО зчщАчшь: ъчвЛвЦы svgalib ьшь directfb (МБч шЦГХу)

зЮчААъшпБДчЮэущщч рЮОт шь ъчшЦГьБАО

тшО X-чр: ъчшЛвЦы Xlib, gtk, qt ьшь шНяЦН тЮЦсЦН зЮчААъшпБДчЮэущщЦН шьяЦ

вК: тшО Xlib ъчщптчяьБАО впъЦАз X-АуЮруЮп р рьщту

----------

## tradakad

naschet delphi - spasibo kone4no no eto dumayu  i sam sdelayu. hotelos by c++  :Smile: 

nas4et svgalib - spasibo za ideyu!

----------

## ZByte

На самом деле ты указал не достаточно данных, чтобы дать тебе ответ, который ты хочешь. А именно надо знать:

1. Нужна ли кроссплатформенность

2. Рисовать всё это нужно внутри окна или глобально, или может быть вобще в файл всё писать надо

3. Требования к графику

4. Требования к скорости

5. Требования к уровню программиста, который это будет реализовывать. Хотя если ты спрашиваешь......

И вобще причём здесь инклюды?  :Shocked:   тут больше ссылки на доки по либам просить надо   :Wink: 

----------

## tradakad

 *ZByte wrote:*   

> 
> 
> На самом деле ты указал не достаточно данных, чтобы дать тебе ответ, который ты хочешь. 
> 
> 

 

Пожалуй Вы правы.

итак хочу написать две программы.

1) меня попросили помочь то ли с контрольной то ли с лабой люди у которых даже компьютера нет. им нужно на с++ написать консольную программку для рисования геометрических фигур с помощью классов, т.е. создать класс треугольник с опр. методами и полями и т.п. причем как выясенилось это нужно только под виндами. к сожалению я с с++ не особо, и с графикой в с вобще никогда не сталкивался. поэтому спросил возможно более знающих людей.

это я уже сделал с помощью турбо с++ 3.0 и файла graphics.h (вот почему я спрашивал о директиве #include )

т.е. ответы на Ваши вопросы касательно этой проги такие : (только №4 можно понять двуяко а) скорость работы программы б) скорость выполнения задания. отвечу в обоих вариантах)

 *ZByte wrote:*   

> 
> 
> 1. Нужна ли кроссплатформенность
> 
> 

 

не обязательно.

 *ZByte wrote:*   

> 
> 
> 2. Рисовать всё это нужно внутри окна или глобально, или может быть вобще в файл всё писать надо
> 
> 

 

в консоли. никуда ничего писать не нужно.

 *ZByte wrote:*   

> 
> 
> 3. Требования к графику
> 
> 

 

это ко второй проге

 *ZByte wrote:*   

> 
> 
> 4. Требования к скорости
> 
> 

 

а) несущественно

б) ASAP

 *ZByte wrote:*   

> 
> 
> 5. Требования к уровню программиста, который это будет реализовывать. Хотя если ты спрашиваешь......
> 
> 

 

Вы не так поняли. я не прошу никого писать за меня. мне самому это нравиться и самому интересно. т.е. реализовывать это буду я, с возможными вопросами к более знающим программистам. а раз реализовывать буду я, соответсвенно мои требования к моему уровню есстественно состоят в необходимости его постоянного повышения  :Smile: 

теперь о второй проге 

2) мой собственный проект. начал давно. суть - расчет биоритмов по вводимой дате. в итоге получаем несколько синусоид на одном графике.

остановился т.к. не знал как рисовать графики (координаты по иксу и игрику я уже знал после расчета формулы, но в идеале возможность рисования любого графика по вводимой функции типа x=2*sin(y). 

на этом моменте я остановился, и отложил это пока, а здесь столкнулся с с++ (для рисования треугольника) и заодно решил спросить о графиках.

т.к. я писал консольный вариант , то результаты должны были выводиться на экран и в файл.

потом планировал переписать это в оконный вариант изпользуя тот же qt к примеру.

сосбственно это все. теперь отвечу на Ваши вопросы касательно второй программы.

 *ZByte wrote:*   

> 
> 
> 1. Нужна ли кроссплатформенность
> 
> 

 

в идеале да, но сначала можно чисто под линукс.

 *ZByte wrote:*   

> 
> 
> 2. Рисовать всё это нужно внутри окна или глобально, или может быть вобще в файл всё писать надо
> 
> 

 

сначала в консоли и писать в файл, потом оконный вариант.

 *ZByte wrote:*   

> 
> 
> 3. Требования к графику
> 
> 

 

чем точнее - ем лучше, т.е. желательно без грубых переходов от точки к точке.

 *ZByte wrote:*   

> 
> 
> 4. Требования к скорости
> 
> 

 

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

б) не срочно

Вы спросите зачем? таких прог миллионы и т.д. - а мне интересно это, мне нравиться учиться новому и мне нравиться программировать, т.е. чисто проект для себя - и если кому то понравиться- для других. есстественно бесплатно.

 *ZByte wrote:*   

> 
> 
> 5. Требования к уровню программиста, который это будет реализовывать. Хотя если ты спрашиваешь......
> 
> 

 

 *ZByte wrote:*   

> 
> 
> И вобще причём здесь инклюды?  

 

пожалуйста , посмотрите выше. я ответил об инклудах.

 *ZByte wrote:*   

> 
> 
> тут больше ссылки на доки по либам просить надо  

 

вот как раз это и нужно, а именно sdl и qt (уже наверно 4-й версии. очень уж сильно наменяли  имхо. по крайней мере те примеры , что я нашел все о qt3 со всеми вытекающими) 

доки желательно на русском, но английский вариант тоже вполне подойдет, главное чтобы постепенно и с примерами.

вот и все.

заранее спасибо за помощь.

----------

## ZByte

По поводу первой программы:

ну на самом деле в винде, начиная с win2k консоли нет совсем  :Smile:  есть только её эмуляция, поэтому тут есть два варианта:

1. Делаем окошко и рисуем в нём - это вроде как самый простой и правильный

2. Рисуем на весь экран. Как это правильно в винде зовётся не помню, но по сути это как большинство игр работает.

Во всяком случае, тебе лучше всего смотреть на directdraw. Доков и туториалов в сети полно, погугли, думаю найдёшь без проблем. Хотя если есть желание покопаться, то можешь и sdl прикрутить, могу даже тебе небольшую рабочую прогу намылить, в качестве примера использования.

По поводу второй программы:

На твоём месте я бы не стал заморачиваться с плюсами и написал бы её на чем-нибудь скриптовом, типа питона. Тем более тогда кроссплатформенность обеспечиться "на халяву", особенно если PyGtk будешь использовать. А для отрисовки графиков можно использовать замечательную либу matplotlib, сам использовал, графики отличные получаются.

----------

## tradakad

 *ZByte wrote:*   

> По поводу первой программы:
> 
> ну на самом деле в винде, начиная с win2k консоли нет совсем  есть только её эмуляция, поэтому тут есть два варианта:
> 
> 1. Делаем окошко и рисуем в нём - это вроде как самый простой и правильный
> ...

 

ну ясно. я сделал в эмуляции консоли. щас вот как раз доделываю чтоб идеально было (как я себе это представляю).

 *ZByte wrote:*   

> 
> 
> Во всяком случае, тебе лучше всего смотреть на directdraw. Доков и туториалов в сети полно, погугли, думаю найдёшь без проблем. 

 

ясно. чем и займемся наверное. интересная тема.

 *ZByte wrote:*   

> 
> 
> Хотя если есть желание покопаться, то можешь и sdl прикрутить, могу даже тебе небольшую рабочую прогу намылить, в качестве примера использования.
> 
> 

 

ну sdl - наверно для меня сложновато будет. хотя за прогу конечно спасибо. желательно с описанием того что там написанно  :Smile: 

 *ZByte wrote:*   

> 
> 
> По поводу второй программы:
> 
> На твоём месте я бы не стал заморачиваться с плюсами и написал бы её на чем-нибудь скриптовом, типа питона. Тем более тогда кроссплатформенность обеспечиться "на халяву", особенно если PyGtk будешь использовать.
> ...

 

я конечно понимаю, что определенные языки более ориентированны под определенные задачи, но есть одно но - я поставил себе цель с++ а потом java. (это не считая того что по ходу второй работы разбираюсь с c# + msqsql + asp.net) т.е. питон пока только в планах...

 *ZByte wrote:*   

> 
> 
> А для отрисовки графиков можно использовать замечательную либу matplotlib, сам использовал, графики отличные получаются.

 

кстати, там написанно

 *Quote:*   

> 
> 
> matplotlib is a python 2D plotting library which produces publication quality figures in a variety of hardcopy formats and interactive environments across platforms. matplotlib can be used in python scripts, the python and ipython shell (ala matlab or mathematica), web application servers
> 
> 

 

я поглядел, но что то не нашел, о каких именно web application servers идет речь? где кроме питона это можно использовать?

p.s. оффтопик - объясни плз по поводу своего жаббера - как к гьейлу соединяться, какой порт и имя сервера? просто у меня инет жутко порезанный и я даже хелп гмейловский не весь могу смотреть (да, и такое тоже бывает  :Sad: ) , и желательно по подробнее поясни как из интерфейса почты подключиться. можно на мыло. мойникздесьнафоруме собака дальшекакутебянажаббере. заранее спасибо!

----------

## ZByte

Я сейчас джабером практически не пользуюсь, я обновил профиль, стучись в аську, если надо

----------

## Rion

не так давно сам писал прогу на с++ под sdl

всё просто как 2x2, даже доки не понадобились, разве что где-то какой-то примерчик глянул. достаточно той инфы что на хомпаже пакета sdl-gfx

графика инициализируется примерно так 

```
    unsigned width=800, height=600;

    // Initialize SDL

    if(SDL_Init(SDL_INIT_VIDEO) == -1){

        cout<<"Failed to initialize SDL: "<<SDL_GetError()<<"\n";

        exit(1);

    }

    atexit(SDL_Quit);

    // Initilize the screen

    SDL_Surface *screen = SDL_SetVideoMode(width, height, 32, SDL_HWSURFACE|SDL_DOUBLEBUF);

    if(screen == NULL){

        cout<<"Unable to set video mode: "<<SDL_GetError()<<"\n";

        exit(1);

    }
```

----------

## tradakad

яОЮЯХАН! НАЪГЮРЕКЭМН ОНОПНАСЕЛ!

----------

