Форум программистов, компьютерный форум, киберфорум
Delphi: Графика, звук, видео
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 09.12.2012
Сообщений: 4
1

Кто-нибудь знает, как выполнить задачку?

20.10.2013, 17:58. Показов 867. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть отрезок, построенный методом Брезенхейма. Нужно выполнить его масштабирование (т.е. есть пиксел, нужно достраивать вокруг него каждый раз квадрат NxN в зависимости от заданного масштаба) и потом сгладить: удалить у каждого увеличенного пиксела самый отдаленный от начальной линии угол (1/4 от квадрата).

Линия по Брезенхейму на DELPHI:

Delphi
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
unit br;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    Image1: TImage;
    LabeledEdit1: TLabeledEdit;
    LabeledEdit2: TLabeledEdit;
    LabeledEdit3: TLabeledEdit;
    LabeledEdit4: TLabeledEdit;
    Button2: TButton;
    Button3: TButton;
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Button2Click(Sender: TObject);
begin
     LabeledEdit1.Text:=inttostr(random(Image1.Width));
     LabeledEdit2.Text:=inttostr(random(Image1.Height));
     LabeledEdit3.Text:=inttostr(random(Image1.Width));
     LabeledEdit4.Text:=inttostr(random(Image1.Height));
 
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
    x:array[1..2,1..2] of integer;
 
procedure lline(xa, ya, xb, yb:integer; color: TColor);
var k,b,y:real;
x:word;
begin
 
k:=(yb - ya) / (xb - xa);
b:= ya - k * xa;
x:=xa;
while x<=xb do begin
Form1.Image1.Canvas.Pixels[x,round(k * x + b)]:=color;
inc(x);
end;
end;
begin
     x[1,1]:=strtoint(LabeledEdit1.Text);
     x[1,2]:=strtoint(LabeledEdit2.Text);
     x[2,1]:=strtoint(LabeledEdit3.Text);
     x[2,2]:=strtoint(LabeledEdit4.Text);
     lline(x[1,1],x[1,2],x[2,1],x[2,2],clBlue);
end;
 
procedure TForm1.Button3Click(Sender: TObject);
begin
Close;
end;
 
end.
Добавлено через 8 минут
Ну или хотя бы просто как масштабировать каждый пиксел?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.10.2013, 17:58
Ответы с готовыми решениями:

Radstudio10_2_1_esd кто-нибудь знает как это установить в другую папку ?
Мне ненравится что всё как-то молча делается. Подозреваю что это сделано для упрощения контроля...

Delphi7 создает exe файлы с вирусами. Кто-нибудь знает Как вылечить?
Создаю form и добавляю label и edit без всякого кода. Жму run. Полученный ехефайл работает, но если...

Кто нибудь знает как это делать?
1. Линейный функционал в R22 R2бесконечность, в точках А(-1,3) и В(1,-4) равен 1 и 5...

Кто нибудь знает как написать игру на С ?)
Зраствуйте Можно ли написать крестики нолики на С ? И как это сделать ? Дайте идею или код....

1
Заблокирован
21.10.2013, 09:35 2
А зачем его масштабировать? Смысла не вижу. Вам нужно ещё и утолщение?
0
21.10.2013, 09:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.10.2013, 09:35
Помогаю со студенческими работами здесь

ЗНАТКИ, может, знает кто-нибудь как решить ?
Кто может, если не трудно, подсказать как решить задачи с помощью Excel.!!! 1. Допустим есть...

Кто-нибудь знает как подключать базу в DHTMLе
Кто-нибудь знает как подключать базу в DHTMLе на VB???

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

Кто нибудь знает как из БИОСа удалить/изменить
Биос последней версии то 2005 года старого компа. Дает две ошибки: нет FANов на CPU и шасси. Фан на...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru