Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 06.02.2019
Сообщений: 47
1
Delphi 6-7

Проблема с рисованием графа в Image

21.03.2019, 21:02. Просмотров 469. Ответов 1
Метки нет (Все метки)


Здравствуйте, возникла проблема с рисованием графа. Я хотел написать программа, которая рисует заданное количество кругов и ребер в Image:
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, Grids;
 
type
  TForm1 = class(TForm)
    Label1: TLabel;
    Edit1: TEdit;
    Label2: TLabel;
    Edit2: TEdit;
    Button1: TButton;
    Image1: TImage;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
Var rebra:array of integer;
    n,x:integer;
 
 
procedure sochitnie;
Var c,q,e:real;
    i:integer;
begin
  q:=1;
  e:=1;
  for i:=1 to n do
    q:=q*i;
  for i:=1 to n-2 do
    e:=e*i;
  c:=q/(e*2);
  x:=round(c);
end;
 
 
procedure rebra1;
Var i,e,q:integer;
    c1:string;
begin
  sochitnie;
  Setlength(rebra,x);
  e:=0;
  for i:=1 to n do
    begin
      c1:=inttostr(i);
      for q:=i+1 to n do
        begin
          c1:=c1+inttostr(q);
          rebra[e]:=strtoint(c1);
          delete(c1,2,1);
          e:=e+1;
        end;
    end;
end;
 
 
procedure TForm1.Button1Click(Sender: TObject);
Var m,i,u1,u2:integer;
    corx:array of integer;
    cory:array of integer;
    rand:array of integer;
begin
  Randomize;
  Image1.Picture:=Nil;
  n:=strtoint(Edit1.Text);
  m:=strtoint(Edit2.Text);
  rebra1;
  SetLength(rand,m);
  SetLength(corx,n);
  SetLength(cory,n);
  Image1.Canvas.Brush.Color:=clGreen;
  Image1.Canvas.Pen.Color:=clBlack;
  Image1.Canvas.Pen.Width:=2;
  Image1.Canvas.Font.Size:=15;
  For i:=0 to n-1 do
    begin
      corx[i]:=Random(601)+20;
      cory[i]:=Random(449)+20;
      Image1.Canvas.Ellipse(corx[i]-20,cory[i]-20,corx[i]+20,cory[i]+20);
      Image1.Canvas.TextOut(corx[i]-13,cory[i]-13,inttostr(i+1));
    end;
  for i:=0 to m-1 do
    begin
      rand[i]:=Random(x);
      u1:=rebra[rand[i]] div 10;
      u2:=rebra[rand[i]] mod 10;
      Image1.Canvas.MoveTo(corx[u1],cory[u1]);
      Image1.Canvas.LineTo(corx[u2],cory[u2]);
    end;
end;
 
 
 
end.
Но в итоге начало рисовать вот такую фигню.
Проблема с рисованием графа в Image
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.03.2019, 21:02
Ответы с готовыми решениями:

Проблема с рисованием
Почему то на форме нет рисунка. Подскажите что не так. using System; using...

Проблема с рисованием.
Здравствуйте. Немного предыстории: пару недель назад я решил начать изучать с#, чтобы можно было...

Проблема с рисованием на PictureBox с увеличением
Делаю графический редактор на подобии Paint.net ломаю голову не 1 ин год уже и вот надеюсь получю...

Проблема с рисованием прозрачных текстур в OpenGL
Сначала объявил все параметры: glEnable(GL_DEPTH_TEST); glDepthFunc(GL_LEQUAL); ...

1
4835 / 3816 / 1273
Регистрация: 14.04.2014
Сообщений: 17,652
Записей в блоге: 18
21.03.2019, 22:10 2
а что не так? все как сказали
по рандому координаты
кружки
поверх них линии

вы не с того начали как обычно.
начните не с рисования, а с предметной области
опишите объекты с которыми работаете
это вершины и ребра
задайте вершинам координаты, а ребрам - номера вершин
и по списку этих данных уже отрисовывайте граф

Правильно выстроить дерево по исходным данным
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.03.2019, 22:10

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

Проблема с рисованием и дочерними окнами (кнопками и полями редактирования)
Здравствуйте , товарищи! Нужна помощь в организации правильной отрисовки окна. Проблема , скорее...

Как менять расстояние между точками графа в Image
Здравствуйте. У меня такая просьба очень нужно реализовать в программе которую я скинул, изменения...

Нахождение фактора графа и остова графа для некоторого произвольного графа (5-6 вершин)
Форумчане прошу помощь в выполнение задания по деск. мат. Задание: Нахождение фактора графа и...

Проблема с визуализацией графа
Здравствууте, хочу сделать визуализацию графа как тут(с метками), ...

Проблема с Image
Здравствуйте. Возник вопрос. Сделал так, чтобы при клике левой кнопкой мыши по Image цвет пикселя...

проблема PHP upload image
проверте пожалуста здес всо провилна <?php mysql_connect("localhost", "root", "") or die...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.