Консультация № 94675
10.07.2007, 22:27
0.00 руб.
0 1 1
У меня такой вопрос:
Как можно в Charte нарисовать скажем пучек прямых из какой-либо точки под разными углами.

Обсуждение

Неизвестный
12.07.2007, 18:14
общий
это ответ
Здравствуйте, Ибрагимов Дмитрий Владимирович!

В общем случае уравнение пучка прямых проходящих через точку А(x1, y1) равно y-y1 = k(x-x1 ), где k - параметр пучка (взято с http://www.mathelp.spb.ru/book1/lines.htm).

Собственно, реализация в приложении. Не забудьте в Charte отключить автомасштаб по оси Y.


Приложение:
unit MainUnit;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, TeeProcs, TeEngine, Chart, Series;type TForm1 = class(TForm) Chart1: TChart; GoBtn: TButton; procedure GoBtnClick(Sender: TObject); private { Private declarations } function NewSeries(K: Double): TFastLineSeries; public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}{ TForm1 }procedure TForm1.GoBtnClick(Sender: TObject);Const MIN_K = 0; MAX_K = 10; STEP_K = 0.2;var i: Double;begin i := MIN_K; while i <= MAX_K do begin Chart1.AddSeries(NewSeries(i)); i := i + STEP_K; end; Chart1.Repaint;end;function TForm1.NewSeries(K: Double): TFastLineSeries;Const MAX_X = 100; X1 = 5; Y1 = 2;var tmpFLS: TFastLineSeries; x: Integer;begin tmpFLS := TFastLineSeries.Create(self); for x := 0 to MAX_X do tmpFLS.AddXY(x, K*(x-X1) + Y1); Result := tmpFLS;end;end.
Форма ответа