Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 11 
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

В цикле while....do я заношу в массив A[10][2](тип Integer или Real) десять точек, затем по этим точкам мне необходимо построить график, используя функцию PolyBezier. Однако компилятор выдает ошибку о несовпадении типов пременных, т.к. в этой ф-ции можно использовать лишь переменные класса TPOINT, а этим переменным нельзя присвоить значения массива А!!!. Что мне делать???



Партнер
 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
В документации что написано? Использовать массив POINT, ну так и используй!
Почему у тебя массив A[10][2](тип Integer или Real) ???
Вот тебе рабочий пример
Код:
const points:array[0..3] of TPoint=(
      (x:1;y:1),
      (x:10;y:10),
      (x:15;y:25),
      (x:23;y:414));
procedure TForm1.Button1Click(Sender: TObject);

begin
     PolyBezier(Canvas.Handle,points,4);
end;


 

Member
Статус: Не в сети
Регистрация: 20.11.2003
B:Tpoint;
for i:=1 to n do
begin
B.x=a[n][1];
B.y=a[n][2];
end;

Типа того?


 

Member
Статус: Не в сети
Регистрация: 15.08.2003
Откуда: Msk,Гольяново
PPoint(@a[n][1])^


 

Примерный код проги:
var x:currency;
var dx:currency;
var y:currency;
var dy:currency;

procedure TForm1.Button1Click(Sender: TObject);
begin
x:=0; // например
y:=0; // например
dx:=0.01; // например
dy:=0.1; // например

for i : =1 to 10 do
begin
x:=x+dx;
y:=y+dy;
end;
end;
И мне надо построить график на форме, притом например в правой нижней четверти формы...
Я создаю массив :
var A1: array [1..10 , 1..2] of currency;
затем в том же цикле
for i : =1 to 10 do
begin
A[i][0]:=x+dx;
A[i][1]:=y+dy;
end;
затем мне надо построить график при помощи функции PolyBezier. КАК ЭТО СДЕЛАТЬ??????


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Так как это описано в документации!


 

Advanced member
Статус: Не в сети
Регистрация: 23.10.2003
Откуда: Иркутск/Майкоп
Beh@lder

var a1:array [0..9] of TPoint;

затем

for i :=1 to 10 do
begin
A1[i-1].x:=чему-то;
A1[i-1].y:=чему-то еще;
end;

Потом рисуем.

PolyBezier(Canvas.Handle,A1,10);

А вообще, бред какой-то. :)
1. Зачем Currency?!
2. Почему массив A1, а потом присваивается массиву A?
3. Второй индекс массива от 0 до 1 или от 1 до 2?
4. Неужели сложно прочитать справку по процедуре PolyBezier?

_________________
Края каждого совершенно нового крышка процессора не на 100% гладкая. Это связано с тем, что следов мастерства не избежать. (c) Али.


 

:spy: Но мне же необходимо нарисовать прямую не только по целым точкам в моем случае это точки типа 1.01, 2.003, 5,0004 и т.д. Т.е. числа десятичные. Есть ли какой-нить алгоритм для постройки такого графика??? Или необходимо все переменные переделывать каким то образом в целые числа типа 50004? Но такой точки на форме явно нет!!!!
График по целым числам я прекрасно понял как строить!!

:beer:


 

Advanced member
Статус: Не в сети
Регистрация: 23.10.2003
Откуда: Иркутск/Майкоп
Beh@lder
Цитата:
Но мне же необходимо нарисовать прямую не только по целым точкам

И что? Пиксели все равно имеют целые координаты. Так что надо выбрать масштаб, делить на какое-то число, а потом округлять с помощью round.

_________________
Края каждого совершенно нового крышка процессора не на 100% гладкая. Это связано с тем, что следов мастерства не избежать. (c) Али.


 

но это сильно долго и муторно. Просто мне надо строить точки типа 5.0001, 5.0004, 5.0009 и т.д. а округлать в этом случае нельзя!!!! И на 10000 не умножить =((


 

Member
Статус: Не в сети
Регистрация: 15.04.2004
Откуда: Москва
Beh@lder
И почему нельзя умножать? Ты просто изменяешь масштаб, ничего из этого страшного не бывает.

_________________
Цель жизни - d20 по жизни...


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 11 
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan