Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 23.04.2012, 09:53
BuSinKa_Lapochka
 
Сообщения: n/a
Вопрос максимум

необходимо найти максимальное х и максимальное у провести через них прямую линию, а затем найти минимальное х и у и тоже провести через них прямые линии в результате точки будут заключены в прямоугольник. необходима помощь в реализации этой задумкиглавная.rar
Ответить с цитированием
  #2  
Старый 23.04.2012, 19:09
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,096
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

А я не понимаю, в чем проблема?
Ну есть у тебя, например, массив точек. Поиск мин и макс значений - один цикл. Соотв. получаешь 4 значения.
Ответить с цитированием
  #3  
Старый 23.04.2012, 19:28
Аватар для Pilot_Red
Pilot_Red Pilot_Red вне форума
Продвинутый
 
Регистрация: 01.11.2006
Адрес: Карелия
Сообщения: 702
Версия Delphi: D7
Репутация: 11581
По умолчанию

Цитата:
Сообщение от Паскаль
А можно код?архивы не смотрю.
Держи, разбирайся..
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, StdCtrls, ExtCtrls, TeeProcs, TeEngine, Chart, Series,
  BubbleCh;


type
  TForm1 = class(TForm)
    Label1: TLabel;
    Edit1: TEdit;
    Button1: TButton;
    Sg: TStringGrid;
    Label2: TLabel;
    Label3: TLabel;
    Button2: TButton;
    Button3: TButton;
    Chart1: TChart;
    Series1: TPointSeries;
    Button4: TButton;
    Edit2: TEdit;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);

  private
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  with Sg, Edit1 do
  begin
    ColCount := StrToIntDef(Text, Sg.ColCount);
  end;
end;


procedure TForm1.Button2Click(Sender: TObject); {заполнение из файла}
var List: TStringList;
  i, j: Integer;
begin
  List := TStringList.Create;
  List.LoadFromFile('Таблица.txt');
  with Form1.Sg do
    for i := 0 to RowCount - 1 do
      for j := 0 to ColCount - 1 do
        Cells[j, i] := List[i * ColCount + j];
  List.Free;
end;

procedure TForm1.Button3Click(Sender: TObject);
var
  i: integer;
begin
  if Series1 = nil then begin
    Series1 := TPointSeries.Create(Chart1);
    Series1.ParentChart := Chart1
  end
  else Series1.clear;

  with Form1.Sg do
    for i := 0 to ColCount - 1 do
      Series1.AddXY(strtoint(cells[i, 0]), strtoint(cells[i, 1]));

{поиск максимума}

end;

procedure TForm1.Button4Click(Sender: TObject);
var i,j:integer;
  temp,max:integer;
begin
{поиск максимума x и y и провести через них прямые}
temp:=0;
  max:=strtoint(sg.cells[0,0]);
  for i:=0 to sg.rowcount-1 do   {i- номер столбца}
    for j:=0 to sg.colcount-1 do  {j - номер строки  }
      begin
        temp:= strtoint(sg.cells[j,i]);
        if temp>max then
          max:=temp;
      end;


end;

end.

Последний раз редактировалось Admin, 23.04.2012 в 21:14.
Ответить с цитированием
  #4  
Старый 24.04.2012, 12:46
BuSinKa_Lapochka
 
Сообщения: n/a
Восклицание

горю просто надо срочно доделать! а я не знаю как это реализовать притом что это еще не конец программы. когда заключили точки в прямоугольник его нужно разбить на несколько вот так Безымянный.JPG а потом по алгоритму мелзака в каждом из прямоугольников найти точку штейнера Пример 1.rar. затем повторить все это еще раз пока не найдется одна точка. очень прошу оказать помощь а то я просто пропадаю!!!!
Ответить с цитированием
  #5  
Старый 25.04.2012, 13:58
BuSinKa_Lapochka
 
Сообщения: n/a
По умолчанию

нашла минимумы и максимумы а как через них провести прямые не знаю подскажите пожалуйста!главная.rar
Ответить с цитированием
  #6  
Старый 25.04.2012, 17:47
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,096
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Цитата:
Сообщение от BuSinKa_Lapochka
нашла минимумы и максимумы а как через них провести прямые не знаю подскажите пожалуйста!Вложение 3034

Код:
Canvas.MoveTo(Xmin,Ymin);
Canvas.LineTo(Xmax,YMin);
Canvas.LineTo(Xmax,Ymax);
Canvas.LineTo(Xmin,Ymax);
Canvas.LineTo(Xmin,Ymin);
Ответить с цитированием
  #7  
Старый 25.04.2012, 18:21
BuSinKa_Lapochka
 
Сообщения: n/a
По умолчанию

надо чтобы рисовалось в chart
Ответить с цитированием
  #8  
Старый 25.04.2012, 19:22
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,096
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Цитата:
Сообщение от BuSinKa_Lapochka
надо чтобы рисовалось в chart

Ну и попробуй рисовать прямо на канве Chart'а. Хотя, там, вроде, свои координаты для рисования - он сам масштабируется, так что либо отказывайся от Chart'а (ну нарисовать оси и несколько точек самотоятельно не такая и большая проблема), либо думай как задать нужные тебе графики (посказка - надо создать еще 4 серии).

Последний раз редактировалось lmikle, 25.04.2012 в 19:25.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 03:05.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025