Форум для общения
С Новым 2009-ым Годом!

новый год, дед мороз

Форум "C++" (архив)


С++, его предки и потомки


 #0 Galenfea © 18.05.05 00:47:42 - 24.05.05 20:40:14

1) Программа для работы с ком-портом 2) Поворот изображения



Народ, помогите, плиз. Я совсем не шарю в программировании. Только паскаль чуть-чуть изучал, а нужно две проги на С++. Думаю, их реально найти в инете, но я не знаю как.

1) Есть устройство подключаемое к ком порту, нужно снять с него информацию, адреса заданы. Я так полагаю, что алгоритм принципиально одинаковый, и разница может быть только в используемых адресах и интерфейсе. Помогите найти алгоритм?

2) Нужно написать программу поворота изображения на задаваемый пользователем угол. То есть представим себе бегунок, дёргая за который пользователь поворачивает изображение на такой угол, который хочет. Я слышал, что алгоритм этот уже забит в функцию в одной из библиотек, но мне нужен именно код. Сейчас не скажу какая библиотека, но может быть вы знаете, где такое есть и как вытащить код библиотечной функции? Или где-нибудь в инете видели...

Вот. Заранее спасибо. Цитата

 #1 VictorT © 18.05.05 10:29:16

1) Когда-то игрался со считыванием инфы с телефонной карточки через ком-порт, дома должны остаться исходники. Правда не знаю, будет ли работать под покалением 2К.
2. Изображение растровое?
 #2 all__ © 18.05.05 11:42:55

писал SST в свое время, не скажу для какой библиотеки :)))) Поворот изображения реализовал таким вот образом(но последняя версия у меня на работе, эта версия аж от 28.dec.03, и не оптимизирована к тому же):
void SST_Rotate(SDL_Surface* Surface,SDL_Surface* result,double Angle)
{
  int xr,yr;
  double angle;
  int wbmp, wcnt;
  double sinang;
  double cosang;
  if(Surface->w<=Surface->h){wbm­p=Surface->w;}else{wbmp=Surface->h­;}
  wcnt=wbmp/2;
  angle=-Angle*3.1415/180;
  cosang=cos(angle);
  sinang=sin(angle);
  SDL_LockSurface(Surface);
  SDL_LockSurface(result);
  for(int i=0;i<wbmp;i++)
  for(int j=0;j<wbmp;j++)
      {
        xr=wcnt+int((i-wcnt)*cosang-(j-wcnt)*si­nang);
        yr=wcnt+int((i-wcnt)*sinang+(j-wcnt)*co­sang);
        if((xr>=0)&&(xr<wbmp)&­;&(yr>=0)&&(yr<wbmp))
            {      SST_PutPixel(result,i,j,SST_GetPixel(Su­rface,xr,yr));
        }else{SST_PutPixel(result,i,j,SDL_MapRG­B(result->format,0,255,0));}
    }
  SDL_UnlockSurface(result);
  SDL_UnlockSurface(Surface);
}
 #3 Galenfea © 18.05.05 17:40:22

all__ © спасибо. Если что у кого ещё есть, не стесняйтесь...
Виктор, да растровое.
Кстати библиотека о которой я говорил на самом деле не для С++, а для Дельфи. Но это в общем-то всё равно на каком языке будет эта прога. Вот первая нужна на С++.

А по поводу первой проги. Она будет проверяться и существовать в условиях win 2000, а я тут в магазине видел какую-то книжку по ассемблеру, в которой было сказано, что проги в винде 2к не могут напрямую работать с портами, и что для этого существуют специальные API функции.
Но есть вариант, когда прога имеет привелегию как у ядра системы, такую имеют драйверы. И ещё, существуют проги, которые позволяют программе пользователя общаться с портами напрямую... м... может быть не точно говорю, но пока хоть вообще помню что там написано было.

 #4 deep © 18.05.05 18:13:16

насчет поворота растрового изображения:


а вот здесь описаны также и другие методы графической обработки:
Масштабирование растрового изображения.
Поворот растрового изображения.
Билинейный фильтр, mipmapping, blur, растеризация.
Сглаживание изображения т.е antialiasing.
Морфинг объектов.
Выделение контуpов на полутоновом изобpажении.
Быстрая растеризация.
Заливка цветом замкнутых областей.

 #5 all__ © 18.05.05 18:30:40

На счет поворота  изображения
А что нужно, алгоритм поворота расписать, или просто прикалывает смотреть на сорцы по реализации этих поворотов...
впринципе, если есть необходимость могу объяснить, что и как делать, чтобы повернуть битмап на нужный угол. какой-нить универсальный сорец может сгенерить...
 #6 deep © 18.05.05 20:30:30

если не ошибаюсь, есть АПИ-функция, которая умеет крутить битмап на нужный угол.    
 #7 all__ © 19.05.05 05:40:26

В каком апи?
В винде вообще не слышал о работе с изображениями
directdraw избегал тк не все карты держат ф-ю аппаратно
в sdl такого точно нет, если не работать с ф-ми ogl
а в ogl и d3d вращаются уже текстурированные примитивы
Так что за ф-я?
 #8 all__ © 19.05.05 05:42:10

В tinyptc тоже нет, там вообще только массивы экранных буферов  
 #9 VictorT © 24.05.05 12:27:00

Ещё ссылки по поводу вращения:






 #10 VictorT © 24.05.05 20:40:14

Поворот изображения.

Компилил в Builder C++ 6.0.




  • Тема находится в архиве

    Написать ответ

    Имя: Регистрация HTML?
    smiles смайлики
    Потом перейти в:    
    паутина



      ©  webest.net, 2002-2009