Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Reluct
0 / 0 / 0
Регистрация: 01.10.2016
Сообщений: 14
1

Графика Delphi

22.12.2016, 19:48. Просмотров 120. Ответов 1
Метки нет (Все метки)

Нужно проводить масштабирование и выводить только тот отрезок на весь image который введет пользователь
Ось Y убирается там где не нужна
Сделать корректным для промежутка от -20 до 20
Вот код, который есть его нужно дописать, я даже не знаю как сделать уже
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
var  m, xmax, ymax, x0, y0, i,n: integer;
    d, y, x, x2,x3,x4: real;
begin
image1.Picture:=nil;
  i:=0;
  Image1.Canvas.Pen.Color:=clGray;
  x:=strtofloat(Edit2.Text);
  x2:=strtofloat(Edit3.Text);
  m:=round((image1.Width)/(x2-x));
  n:=round((image1.Height)/(4));
  xmax:=Form1.ClientWidth;
  ymax:=Form1.ClientHeight;
  x0:=((xmax div m) div 2)*m;
  y0:=((ymax div m) div 2)*m;
    while i<xmax do
  begin
    i:=i+m;
    Image1.Canvas.MoveTo(i, 0);
    Image1.Canvas.LineTo(i, ymax);
    Image1.Canvas.MoveTo(0, i);
    Image1.Canvas.LineTo(xmax, i);
  end;
  Image1.Canvas.Pen.Color:=clRed;
  Image1.Canvas.MoveTo(0,y0);
  Image1.Canvas.LineTo(xmax,y0);
 Image1.Canvas.MoveTo(x0, 0);
  Image1.Canvas.LineTo(x0, ymax);
    if (Edit2.Text<>'') and (Edit3.Text<>'') then
    begin
      x:=strtofloat(Edit2.Text);
      x2:=strtofloat(Edit3.Text);
    end
    else
    if (Edit2.Text<>'') and (Edit3.Text='') then
    begin
      x:=strtofloat(Edit2.Text);
      x2:=xmax;
    end
    else
    if (Edit2.Text='') and (Edit3.Text<>'') then
    begin
      x2:=strtofloat(Edit3.Text);
      x:=0-x0;
    end
    else
    begin
      x:=0-x0;
      x2:=xmax;
    end;
    d:=1/m;
    Image1.Canvas.Pen.Color:=clRed;
    while x<x2 do
    begin
  {    x4:=x*(-1)*m;
      x3:=x*m+x4;}
      y:=4;
      Image1.Canvas.Ellipse(round(x*m)+x0, round(-y*m)+y0, round(x*m)+x0+2, round(-y*m)+y0+2);
      x:=x+d;
    end;
end;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.12.2016, 19:48
Ответы с готовыми решениями:

Графика в Delphi
Я delphi изучаю только пол года и дошёл до изучения графики.Меня волнует вопрос ответ на который я...

Графика в Delphi
Всем привет, с дельфином совсем,совсем недавно столкнулся, но в общем вот задачка: Как менять...

Графика delphi
Отобразить на фоне звездного неба периодически пролетающую комету рисунок

Графика в Delphi
Привет всем,нужна помощь, задание такое нужно нарисовать палатку и два дерева в делфи, я нарисовал...

Графика в Delphi
Основание четырехугольной пирамиды — ромб. Вершина пирамиды проектируется в центр симметрии ромба....

1
krapotkin
3418 / 3025 / 1047
Регистрация: 14.04.2014
Сообщений: 14,679
Записей в блоге: 15
23.12.2016, 13:37 2
для начала
разделите интерфейс и данные программы

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
procedure TForm1.PrepareData();
begin
получить из Edit все значения в нужные переменные и больше edit не использовать 
end;
 
procedure TFrom1.DrawData();
begin
тут перед каждой логической частью поставить комментарии, что тут происходит
end;
 
procedure TForm1.Draw;
begin
  PrepareData();
  DrawData();
end;
уже что-то станет понятно

p.s. почему рисование идет на Image1 а maxx=Form1.ClientWidth ?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.12.2016, 13:37

Графика в Delphi
Почему при запуске ничего не рисует? unit Unit1; interface uses Windows, Messages, SysUtils,...

Delphi 7 графика
Помогите с графикой плиз кто может=) Надо нарисовать пушку из которого через каждые 10 сек....

Графика в Delphi
Расположить на вкладке компоненты для ввода параметров изображения и кнопку «Рисование», по нажатию...


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

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

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