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

Delphi Sources



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

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 10.05.2012, 23:37
StudentMarat StudentMarat вне форума
Прохожий
 
Регистрация: 18.02.2011
Сообщения: 38
Репутация: 156
По умолчанию Ось координат и построение прямой по двум точкам

Дана ось координат XY. На оси координат задаются две точки с координатами (начало отрезка и конец отрезка). По этим двум точкам построить прямую и определить, проходит ли это прямая через начало координат (0,0).

В общем, ось координат я построил. Не могу начертить прямую через координаты точки и как определить проходит ли это прямая через начало координат. Код на текущий момент прилагаю:

Код:
unit Unit2;
 
interface
 
uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Menus, Vcl.ExtCtrls;
 
type
  TForm2 = class(TForm)
    Image1: TImage;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    Edit4: TEdit;
    Button1: TButton;
    Button2: TButton;
 
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Clear;
    procedure FormCreate(Sender: TObject);
 
 
 
    procedure N2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form2: TForm2;
  x,y,x1,y1,x2,y2: integer; // Координаты точек
 
implementation
 
{$R *.dfm}
 
 
procedure TForm2.Button1Click(Sender: TObject);
begin
 
x:=250;   // Начало координат (условно X=0)
  y:=250; // Начало координат (условно Y=0)
  x1:=StrToint(Edit1.Text);                // Координата X первой точки
  y1:=StrToInt(Edit2.Text);               // Координата Y первой точки
  x2:=StrToInt(Edit3.Text);               // Координата X второй точки
    y2:=StrToInt(Edit3.Text);            // Координата Y второй точки
Image1.Canvas.MoveTo(x+x1,y-y1);   // Отмечаем на оси XY первую точку   
Image1.Canvas.MoveTo(x+x2,y-y2);    // Отмечаем на оси XY вторую точку точку   
// Как дальше????
 
end;
 
procedure TForm2.Button2Click(Sender: TObject);
begin
Clear;  // Нажатием кнопки "Очистить" возвращаем все в первоначальное состояние
end;
 
procedure TForm2.Clear;
var i, k:integer;
begin
Image1.Canvas.Pen.Width:=1;
Image1.Canvas.pen.Color:=clBlack;
image1.Canvas.Brush.Color:=clwhite;
image1.Canvas.Rectangle(0,0,500,500);
image1.Canvas.MoveTo(250,0); image1.Canvas.LineTo(250,500);
image1.Canvas.MoveTo(0,250); image1.Canvas.LineTo(500,250);
k:=50;
for i:=1 to 9 do begin
image1.Canvas.MoveTo(247,k); image1.Canvas.LineTo(254,k);
image1.Canvas.MoveTo(k,247); image1.Canvas.LineTo(k,254);
image1.Canvas.TextOut(k-9,257,inttostr(k-250));
if k<>250 then image1.Canvas.TextOut(223,k-7,inttostr(-k+250));
k:=k+50;
end;
end;
 
 
procedure TForm2.FormCreate(Sender: TObject);
begin
Clear; // Процедура построения оси координат
end;
 
end.
Ответить с цитированием
 


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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