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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.02.2011, 18:56   #1
triixa
 
Регистрация: 29.05.2010
Сообщений: 3
По умолчанию Курсовой проект в Delphi

Здравствуйте. Я здесь новичoк, так что сильно не бейте, если что-то нарушил этой темой.
Итак, собственно, к самой тема.
В конце весны мне нужно сдавать курсовую. И эту тему я сделал, что-бы вы, я надеюсь, объяснили мне непонятные моменты, если таковые возникнут. В общем вот.
Тема курсовой:
Графический редактор с возможностями:
-Масштабирование изображений с сохранением пропорций и без онного;
-Поворот изображения на произвольный угол;
-Отображение изображения по вертикали и горизонтали;
-Не мение трех видов сглаживания.
Вот. На этом все. Вопросов пока нет, но наверняка скоро появятся. Надеюсь я до весны никому тут мозг не вынесу
Я - индийский быдлокодер!
triixa вне форума Ответить с цитированием
Старый 22.02.2011, 13:34   #2
triixa
 
Регистрация: 29.05.2010
Сообщений: 3
По умолчанию

Итак, первый вопрос. А точнее просьба в консультации.
Вот код:
Код:
procedure RotateRight(BitMap: tImage);
var
  FirstC, LastC, c, r: integer;

  procedure FixPixels(c, r: integer);
  var
    SavePix, SavePix2: tColor;
    i, NewC, NewR: integer;
  begin
    SavePix := Bitmap.Canvas.Pixels[c, r];
    for i := 1 to 4 do
    begin
      newc := BitMap.Height - r + 1;
      newr := c;
      SavePix2 := BitMap.Canvas.Pixels[newc, newr];
      Bitmap.Canvas.Pixels[newc, newr] := SavePix;
      SavePix := SavePix2;
      c := Newc;
      r := NewR;
    end;
  end;

begin
  if BitMap.Width <> BitMap.Height then
    exit;
  BitMap.Visible := false;
  with Bitmap.Canvas do
  begin
    firstc := 0;
    lastc := BitMap.Width;
    for r := 0 to BitMap.Height div 2 do
    begin
      for c := firstc to lastc do
      begin
        FixPixels(c, r);
      end;
      inc(FirstC);
      Dec(LastC);
    end;
  end;
  BitMap.Visible := true;
end;
Требуется помощь в понимании этого.
Я - индийский быдлокодер!
triixa вне форума Ответить с цитированием
Старый 22.02.2011, 16:38   #3
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

изучи раздел работы с матрицами - поворот изображения на угол 90* - это есть перестановка строк матрицы в столбцы, причем легко реализуемая

матрица у тебя есть - это изображение, элементы матрицы - пикселы

получить досту к элементу матрицы (то бишь к пикселу) .Pixels[i, j], возвращает цвет пиксела, то бишь значение элемента матрицы

от этого и копай

поворот на произвольный угол - это посложнее, в помощь гугл
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]
RUSt88 вне форума Ответить с цитированием
Старый 23.02.2011, 18:25   #4
triixa
 
Регистрация: 29.05.2010
Сообщений: 3
По умолчанию

На счет поворота на 90 град я знаю. И на счет гугла: эту тему я сделал не для того, чтобы процедуры выпрашивать, и быть посланным в гугл. А для того, чтоб вы помогли понять мне найденые мной процедуры. Вот я и прошу описать ту подпрограмму, что постом выше.
Я - индийский быдлокодер!
triixa вне форума Ответить с цитированием
Старый 23.02.2011, 20:05   #5
Erizar
 
Регистрация: 09.02.2011
Сообщений: 4
По умолчанию

А что тут непонятного?
Меняются местами строки и столбцы матрицы пикселей.
Erizar вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Курсовой проект (С++) СJIoH Помощь студентам 3 15.11.2013 20:57
Курсовой проект tatishka Помощь студентам 1 19.01.2011 10:33
Задание на курсовой проект Siluet Помощь студентам 0 31.05.2010 22:03
Курсовой проект (антивирус) Kazik Помощь студентам 0 29.05.2010 23:32
Курсовой проект по Delphi 7 Agent[PNZ] Помощь студентам 9 14.11.2008 13:25