Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2005.03.27;
Скачать: [xml.tar.bz2];

Вниз

LineTo или рисование по мм?   Найти похожие ветки 

 
Sergonoid   (2004-12-07 18:25) [0]

Вот LineTo, или рисование прямоугольника выводят фигуру в X,Y, где Х и У - целые, а возможно ли вывести линию или другую фигуру где Х и У содержат дробь? И как например вычислив косинус вывести линую на экран, если LineTo с параметрами только целыми числами (неужели преобразовывать к целым и отбрасывать дробь?)
Подскажите плиз, очень надо


 
Jeer ©   (2004-12-07 18:34) [1]

Как ты себе представляешь 1/3 пиксела ?


 
Poirot ©   (2004-12-07 18:46) [2]

Вспомни в школе осцилограф - как там можно увеличть детализацию?!.. уеньшить количество делений на елиницу длины... :) т.е. пусть у тя буить 10 пимкселов это сантиметер:) и т.д.:)


 
Sergonoid   (2004-12-07 19:30) [3]

И что вот так и например нужно делать:
l=12.5;
h=0.5;
Rectagle(10,10,10+l*10,10+h*10)

Неужели только переводить?
А если косинус берется, что тоже необходимо также делать?

Ну может быть.


 
programania ©   (2004-12-07 20:17) [4]

Увеличьте картинку в 10 раз stretchDraw,
умножьте все координаты и pen.width на 10,
выведите что надо,
уменьщите в 10 раз со сглаживанием.

Или придется вычислять сколько нового цвета
придется на каждый пиксел, сколько старого,
смешивать их пропорционально и это выводить.


 
uny ©   (2004-12-10 07:52) [5]

график: X,Y, всего j пар значений 1..j
1 i:=2
2 moveto (i-1)-я точка
3 lineto(i точка)
4 i:=i+1 если i>j перейти к пункту6
5 перейти к пункту 2
6 ага!:)


 
MBo ©   (2004-12-10 08:15) [6]


procedure TForm1.Button1Click(Sender: TObject);
var
 x, y: array[1..50] of double;
 i: integer;
 scalex, scaley, ymin, ymax, xmin, xmax: double;
begin
 for i := 1 to 50 do begin
   y[i] := sin(i * 0.5);
   x[i] := i;
 end;
 xmin := x[1];
 xmax := x[1];
 ymin := y[1];
 ymax := y[1];
 for i := 2 to 50 do begin // или ymin:=MinValue(y);  и т.д.
   if y[i] < ymin then ymin := y[i];
   if y[i] > ymax then ymax := y[i];
   if x[i] < xmin then xmin := x[i];
   if x[i] > xmax then xmax := x[i];
 end;
 scalex := paintbox1.Width / (xmax - xmin);
 scaley := paintbox1.Height / (ymax - ymin);
 with paintbox1.canvas do begin
   moveto(trunc(scalex * (x[1] - xmin)), paintbox1.height - trunc(scaley * (y[1] - ymin)));
   for i := 2 to 50 do
     Lineto(trunc(scalex * (x[i] - xmin)), paintbox1.height - trunc(scaley * (y[i] - ymin)));
 end;
end;


 
uny ©   (2004-12-10 11:52) [7]

[6] MBo ©  
Ваша правда, lineto тоже переводит кисть там или что


 
MBo ©   (2004-12-10 12:03) [8]

>uny ©   (10.12.04 11:52) [7]
да, но нев этом суть, я привел код, поскольку подумал, что вопрошающий не осознает, как масштабировать график в прямоугольник вывода.


 
uny ©   (2004-12-10 12:33) [9]

MBo ©   (10.12.04 12:03)
а я подумал проблема как отобразить кривую между вычисленными точками, используя lineto
(т.е. не использовать формулу построения отрезка и не вычислять значение для каждой точки экрана)



Страницы: 1 вся ветка

Форум: "Media";
Текущий архив: 2005.03.27;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.041 c
3-1109053846
WondeRu
2005-02-22 09:30
2005.03.27
MSSQL. Настройка репликации


4-1108312250
Алексей
2005-02-13 19:30
2005.03.27
Не получается, отловить сообщения комбобокса, переполнение стека


14-1110153078
AlterEgo of WondeRu
2005-03-07 02:51
2005.03.27
Как добавить Linux в nt loader?


1-1110461672
syte_ser78
2005-03-10 16:34
2005.03.27
сколько дней между двумя датами


1-1110412810
asdprog
2005-03-10 03:00
2005.03.27
редактор delphi 5





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский