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

Вниз

Математика   Найти похожие ветки 

 
{RASkov} ©   (2008-08-22 23:36) [0]

1)
 for C:=0 to 2 do
  for R:=0 to 2 do begin
   Ind:=R*2+C;

.......
Что-то никак не соображу как в Ind получить последовательность (0,1,2,3,4,5,6,7,8) или (1,2,3,4,5,6,7,8,9)

2)
Или вот такой вопрос:
Как расчитать Rect"ы зная их кол-во и размер сетки. Т.е.
var R: TRect;
begin
ColCount:=5;
RowCount:=5;
for I:=0 to ColCount*RowCount-1 do begin
R:=Rect(?)
Canvas.Rectangle(R); //Должна получится на канве сетка 5х5
........


Ох уж эта математика, да еще и в пятницу :(


 
palva ©   (2008-08-22 23:39) [1]

C*3+R+1


 
Zeqfreed ©   (2008-08-22 23:41) [2]

2)
x := I mod ColCount;
y := I div RowCount;
R := Rect(x * rectWidth, y * rectWidth, x * rectWidth + rectWidth, y * rectWidth + rectHeight);

Вроде :)


 
DVM ©   (2008-08-22 23:42) [3]


> Ох уж эта математика, да еще и в пятницу :(

завязывай, ночь на дворе :)


 
TUser ©   (2008-08-22 23:43) [4]

C*3+R, по аналогии с перечислением десятичных числе - множим на 10, хотя макс цифра 9.

границы i-й ячейки W*i...W*(i+1) + толщину границ учесть и тоже самое по веритикали


 
Zeqfreed ©   (2008-08-22 23:44) [5]

> Zeqfreed ©   (22.08.08 23:41) [2]

Копипаст меня подвел :) Ну как-нибудь разберетесь.


 
{RASkov} ©   (2008-08-22 23:59) [6]

Ага... Спасибо.
С первым разобрался так:
 for C:=0 to ColCount do
  for R:=0 to RowCount do begin
   Ind:=R*(ColCount+1)+C+1;
   RC:=Rect(C*IM_W+IM_HS, R*IM_H+IM_VS, C*IM_W+IM_W, R*IM_H+IM_H); //Не верно!
   Canvas.Rectangle(RC);
   Canvas.TextOut(RC.Left+5, RC.Top+5, IntToStr(Ind));
  end;
константы IM_xxx - это ширина ректа и отступ между ними...
Кстати тоже пока не верно расчитывается RC, но с этим я думаю уже разберусь сам... Еще раз спасибо palva, TUser.

А со вторым - намек вроде понял, но пока не получилось.... но думаю тоже "допру". Спасибо Zeqfreed.

Ну и тебе спасибо DVM ;):)


 
{RASkov} ©   (2008-08-23 12:55) [7]

> А со вторым - намек вроде понял, но пока не получилось..

Со вторым вообще оказалось еще проще, чем с первым... :)
Там и "в див" и "в мод" нужно на одно и тоже значение делить.
Правда я вчера последовал совету DVM...
А сегодня со свежим взглядом на жизнь все сделал, но все равно огромное спасибо, быть может я бы долго еще соображал с этой примитивной математикой...
И тут

> RC:=Rect(C*IM_W+IM_HS, R*IM_H+IM_VS, C*IM_W+IM_W, R*IM_H+IM_H); //Не верно!

вот как нужно:
 L:=RC_HSPACE+C*(RC_WIDTH+RC_HSPACE);
 T:=RC_VSPACE+R*(RC_HEIGHT+RC_VSPACE);
 RC:=Rect(L, T, L+RC_WIDTH, T+RC_HEIGHT);

Теперь Верно!
:)



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

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

Наверх





Память: 0.46 MB
Время: 0.071 c
2-1220434352
Delphist
2008-09-03 13:32
2008.10.12
SQL-запрос


15-1219671790
Vlad Oshin
2008-08-25 17:43
2008.10.12
можно ли поставить oracle 10gXE(бесплатный который) копированием?


15-1219090059
Alien1769
2008-08-19 00:07
2008.10.12
pppoe


2-1220596372
Fynjy
2008-09-05 10:32
2008.10.12
В Form2 получается строка, которую нужно передать в Form1


15-1219226478
silver222
2008-08-20 14:01
2008.10.12
Вывод фотографий





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский