Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.02.2008, 20:35   #1
DUMOH
 
Регистрация: 27.02.2008
Сообщений: 4
По умолчанию Создание графиков(например декартов лист)

Необходимо создать график по формуле , я б хотел узнать с помощью чего ето можно зделать и возможно ли?
DUMOH вне форума Ответить с цитированием
Старый 27.02.2008, 21:10   #2
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

Почему же невозможно? Берешь формулу и рисуешь.
Код:
procedure TForm1.FormClick(Sender: TObject);
var
  n,i,x0,y0: integer;
  x,y,m,f,r,h: double;
begin
  x0:=200; y0:=200;
  n:=1000; h:=2*pi/n;
  f:=0; m:=10;
  for i:=0 to n do
    begin
      r:=3*4*cos(f)*sin(f)/(cos(f)*cos(f)*cos(f)+sin(f)*sin(f)*sin(f));
      x:=r*cos(f); y:=r*sin(f);
      Form1.Canvas.Pixels[x0+round(x*m),y0-round(y*m)]:=clBlack;
      f:=f+h;
    end;
end;
_Dmitry вне форума Ответить с цитированием
Старый 28.02.2008, 09:07   #3
DUMOH
 
Регистрация: 27.02.2008
Сообщений: 4
Хорошо

Спасибо огромное, а то я уж отчаялся
DUMOH вне форума Ответить с цитированием
Старый 28.02.2008, 10:06   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Вообще то для этого есть TChart
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.02.2008, 12:38   #5
DUMOH
 
Регистрация: 27.02.2008
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Вообще то для этого есть TChart
Stilet а у тебя есть какой нибудь график чтоб он был построен через TChart
DUMOH вне форума Ответить с цитированием
Старый 28.02.2008, 13:16   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Всмысле пример?
Есть конечно:
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Chart1: TChart;
    Series1: TFastLineSeries;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var i:real;
begin
i:=0; while i<360 do begin
 Chart1.Series[0].AddXY(cos(i),sin(i));
 i:=i+10;
end;
end;

end.
Закинь на форму компонент TChart, создай в нем серию, пусть это будет линия, и пропиши этот код, и наслаждайся картинкой
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.03.2008, 20:03   #7
DUMOH
 
Регистрация: 27.02.2008
Сообщений: 4
По умолчанию

Это о5 я
Как осуществить спомощью TChart задуманное, мне нужно чтоб он отчерчивал тока грани фигур, а вотс таким кодом он соединяет точку с токой зигзагом
КОД:
type
TForm1 = class(TForm)
Chart1: TChart;
Series1: TLineSeries;
procedure FormClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormClick(Sender: TObject);
var
a,m,n,f:integer;
r,x0,y0,x,y: double;
begin
x0:=0;y0:=0;
A:=5; M:= 3; N:= 1;
FOR F:=0 TO 500 do begin
R:=A * sin(M * F / N);
X:= X0 + R * COS(F);
Y:= Y0 - R * SIN(F);
chart1.Series[0].AddXY(x,y);
end;
end;
end.
DUMOH вне форума Ответить с цитированием
Старый 30.03.2008, 18:54   #8
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

Chart соединяет точки зигзагом потому, что в настройках компонента установлено упорядочивание данных по координате X (график строится по отсортированному массиву точек).
Отключить сортировку: Chart1.Series[0].XValues.Order:=loNone;
В результате, вы увидите точки, соединенные линиями, в том порядке, в котором они получены в вашей программе, т.е. полную ерунду, а не график. С полярной системой координат Chart вам не помошник.
Если функцию нельзя записать в явном виде, то необходимо записывать ее в параметрической форме, т.е. вводить параметр, монотонное изменение которого, позволяет получить точки в нужной последовательности. Например, для предыдущей задачи (пост #1) таким параметром является "u" (см. ссылку, пост #2). В вашей же задаче, угол "F" таким параметром не является.
_Dmitry вне форума Ответить с цитированием
Старый 26.05.2008, 14:39   #9
Cenobite
Новичок
Джуниор
 
Регистрация: 26.05.2008
Сообщений: 1
Счастье

Цитата:
Сообщение от _Dmitry Посмотреть сообщение
...Отключить сортировку: Chart1.Series[0].XValues.Order:=loNone;
В результате, вы увидите точки, соединенные линиями, в том порядке, в котором они получены в вашей программе, т.е. полную ерунду, а не график...
Это не ерунда! Это гениально. Мне именно так и надо!! Спасибо!!!
Cenobite вне форума Ответить с цитированием
Старый 04.06.2008, 22:38   #10
NyMFetbI4
Новичок
Джуниор
 
Регистрация: 04.06.2008
Сообщений: 1
По умолчанию

Цитата:
Сообщение от Cenobite Посмотреть сообщение
Это не ерунда! Это гениально. Мне именно так и надо!! Спасибо!!!
И все-же ерунда.... декартов лист рисуется не 1 сессией, а 4-мя сессиями, там вся соль в том, что надо разбить его грамотно.... есть мысль, вот сижу, в код выражаю ее)
NyMFetbI4 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
MathCad - создание графиков file Помощь студентам 1 20.06.2008 19:21
Дано четырехзначное число, заданное в символьном виде, например, '1954'. Напечатать его текстом, например gred Помощь студентам 13 31.03.2008 22:24
игра про карты например (дурак) alex@x Gamedev - cоздание игр: Unity, OpenGL, DirectX 2 06.12.2007 15:53
как наклонить метку (Label) с текстом, например, на 45 грудусов? krem Компоненты Delphi 2 09.05.2007 19:20
как сделать в memo строку не 256 символов, а 1024 например. Alar Компоненты Delphi 0 29.10.2006 18:46