|
Основной форум Сюда все проблемы связанные с программированием. |
11.12.2009, 18:54
|
#1
|
Оператор ЭВМ
Регистрация: 07.12.2009
Адрес: Мытищи
Сообщений: 44
Написано 6 полезных сообщений (для 6 пользователей)
|
Вектора и сейф экрана...
Какой процедурой можно рисовать вектор, зная координаты 3 точек: предпредпоследней, предпоследней, последней.
И востановку рисунка, после рисования менюшки? Может библиотечка какая...
|
(Offline)
|
|
11.12.2009, 19:27
|
#2
|
Модератор
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений (для 817 пользователей)
|
Ответ: Вектора и сейф экрана...
Линии только по двум точкам можно рисовать (начало - конец).
Восстановить содержимое экрана можно, сохранив его предварительно функцией ImageFromCanvas.
|
(Offline)
|
|
12.12.2009, 12:58
|
#3
|
Мастер
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений (для 713 пользователей)
|
Ответ: Вектора и сейф экрана...
Вы имеете ввиду кривую Безье?
Попробую поискать алгоритм в нете.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
12.12.2009, 20:52
|
#4
|
Оператор ЭВМ
Регистрация: 07.12.2009
Адрес: Мытищи
Сообщений: 44
Написано 6 полезных сообщений (для 6 пользователей)
|
Ответ: Вектора и сейф экрана...
Я пытался цыклом... Была идея реализовать с помощью xspead yspead, но ненаю с чего начать...
|
(Offline)
|
|
14.12.2009, 23:06
|
#5
|
Оператор ЭВМ
Регистрация: 07.12.2009
Адрес: Мытищи
Сообщений: 44
Написано 6 полезных сообщений (для 6 пользователей)
|
Ответ: Вектора и сейф экрана...
Так, идей ни у кого нет... Я долго думал))) Но не смог придумать ничего лучше, чем "Надо создать библиотеку для работы с векторами..."
Может всё таки цикл подскажете?)))
|
(Offline)
|
|
14.12.2009, 23:35
|
#6
|
Знающий
Регистрация: 21.07.2009
Адрес: Украина
Сообщений: 219
Написано 44 полезных сообщений (для 78 пользователей)
|
Ответ: Вектора и сейф экрана...
|
(Offline)
|
|
15.12.2009, 19:21
|
#7
|
Оператор ЭВМ
Регистрация: 07.12.2009
Адрес: Мытищи
Сообщений: 44
Написано 6 полезных сообщений (для 6 пользователей)
|
Ответ: Вектора и сейф экрана...
Да, забыл отписаться, что нашёл. (Спасибо ViNTу) Просто она позже появилась)
|
(Offline)
|
|
15.12.2009, 22:38
|
#8
|
Оператор ЭВМ
Регистрация: 07.12.2009
Адрес: Мытищи
Сообщений: 44
Написано 6 полезных сообщений (для 6 пользователей)
|
Ответ: Вектора и сейф экрана...
Program Nya;
Uses sensor,bezier;
Var xf, yf, xs, ys, xb, yb, sx, xy:integer;
state, i, j, dre: integer;
//
//Безье изгиб
Procedure MakeBpoints;
Begin
xb:=xs-(xf-xs)/2;
yb:=ys-(yf-ys)/2;
xf:=xs;
yf:=ys;
xs:=pointer_dragged_x;
ys:=pointer_dragged_y;
DrawBezier(xf, yf, xb, yb, xs, ys);
End;
//
Begin
sensor.init; // Инициализация библиотеки
repeat
state:=pointer_state; // Читаем состояние сенсора
MakeBpoints;//Просчт точки Безье
// Рисуем нормали
SetColor(200, 200, 200);
DrawLine(xf, yf, xb, yb);
DrawLine(xb, yb, xs, ys);
SetColor(0, 0, 0);
//
Repaint; // Отрисовка линии
delay(20);
until false;
В чем ошибка? Телефон всё время рисует из точки 0;0 ((
Philips X800
|
(Offline)
|
|
15.12.2009, 23:29
|
#9
|
ПроЭктировщик
Регистрация: 31.01.2007
Сообщений: 128
Написано 20 полезных сообщений (для 43 пользователей)
|
Ответ: Вектора и сейф экрана...
Сообщение от VotapilD
В чем ошибка? Телефон всё время рисует из точки 0;0 ((
Philips X800
|
Думаю, нужно смотреть в сторону функций для работы с сенсорным экраном. Pointer_pressed_x с последующим сбросом данных библиотеки, возможно, спасёт
|
(Offline)
|
|
16.12.2009, 00:56
|
#10
|
Нуждающийся
Регистрация: 26.12.2008
Сообщений: 57
Написано 22 полезных сообщений (для 28 пользователей)
|
Ответ: Вектора и сейф экрана...
Попробуй вызывать MakeBpoints; только если есть прикосновение к экрану.
А так xs:=pointer_dragged_x;
ys:=pointer_dragged_y; наверно нули возвращают.
|
(Offline)
|
|
21.12.2009, 01:50
|
#11
|
Оператор ЭВМ
Регистрация: 07.12.2009
Адрес: Мытищи
Сообщений: 44
Написано 6 полезных сообщений (для 6 пользователей)
|
Ответ: Вектора и сейф экрана...
/me ОЧЕНЬ ЗЛОЙ!
Такую простую вещь и не могу сделать(
Плиз, ребята, хелп^^
Program Pointer;
Uses sensor,bezier;//uses
Var xf, yf, xs, ys, xb, yb, sx, xy,nya, i, j, dre, xx, yy, state, key: integer;
//Безье изгиб
Procedure MakeBpoints;
Begin
state:=pointer_state; // Читаем состояние сенсора
if state=1 then begin
if (xf=0) and (yf=0) then begin
xf:=pointer_dragged_x;
yf:=pointer_dragged_y;
nya:=1;
end;
else begin
xb:=xs-(xf-xs)/2;
yb:=ys-(yf-ys)/2;
xf:=xs;
yf:=ys;
end;
xs:=pointer_dragged_x;
ys:=pointer_dragged_y;
if nya=1 then begin
xb:=xf-(xf-xs)/2;
yb:=yf-(yf-ys)/2;
nya:=0;
end;
DrawBezier(xf, yf, xb, yb, xs, ys);
end;
else begin
xf:=0;//x First
yf:=0;
xb:=0;//x Bezie
yb:=0;
xs:=0;//x Second
ys:=0;
end;
End;
//
// >=<=<=!=ИГРА=!=>=>=<
Begin
sensor.init; // Инициализация библиотеки
repeat
MakeBpoints;
Repaint; // Отрисовка линии
until false;
End.
Вектор не прерывается, ведёт себя странно при рисовании(не так искривляется (по оси x, по крайней мере))
|
(Offline)
|
|
22.12.2009, 16:26
|
#12
|
Оператор ЭВМ
Регистрация: 07.12.2009
Адрес: Мытищи
Сообщений: 44
Написано 6 полезных сообщений (для 6 пользователей)
|
Ответ: Вектора и сейф экрана...
Нашёл) Там функции типа xs:=pointer_dragged_x; ys:=pointer_dragged_y; при state=1 возвращают старые значения...
|
(Offline)
|
|
22.12.2009, 23:21
|
#13
|
Оператор ЭВМ
Регистрация: 07.12.2009
Адрес: Мытищи
Сообщений: 44
Написано 6 полезных сообщений (для 6 пользователей)
|
Ответ: Вектора и сейф экрана...
Всё супер! Тема закрыта! Всем спасибо!(Кому надо, ставил плюсы) Буду продолжать разработку проги, но дальше уже мелочи, но приятные)
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 16:33.
|