|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
06.01.2013, 13:32 | #1 |
Форумчанин
Регистрация: 23.11.2012
Сообщений: 428
|
3х мерный массив координат
в общем рисую на канве изображения сетку из квадратиков 9*9, каждый квадратик 16*16, есть 2 массива Rectangles_x[1..9, 1..9, 1..16] и Rectangles_y[1..9, 1..9, 1..16], первые 2 части массивов - номера строки и столбца, третья - координаты по x и y относительно Image соответственно, в общем я слегка запутался во всем этом деле... если я завожу 3 цикла в которых рисую и попутно пытаюсь записать координаты в 3 часть массивов, то я никак не врублюсь как же получиться что вложенный цикл выходит больше того что выше...
Код:
Последний раз редактировалось NewLamer&Programer; 06.01.2013 в 13:59. |
06.01.2013, 16:38 | #2 |
Форумчанин
Регистрация: 23.11.2012
Сообщений: 428
|
HELP !!!!!
|
06.01.2013, 16:48 | #3 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
зачем Вы поднимаете тему? Надеетесь, так быстрее получите результат?..
попробовал Ваш код. рисует прямоугольник заполненный клетками 9X9 что не так? p.s.вместо двух массивов я бы рекомендовал использовать один, типа TPoint Код:
|
06.01.2013, 18:40 | #4 |
Форумчанин
Регистрация: 23.11.2012
Сообщений: 428
|
Serge_Bliznykov, да надеюсь
Код:
з.ы. да пожалуй можно и TPoint, не знал о таком спасибо Последний раз редактировалось NewLamer&Programer; 06.01.2013 в 19:40. |
07.01.2013, 02:01 | #5 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
так, что ли?? Код:
Последний раз редактировалось Serge_Bliznykov; 07.01.2013 в 02:07. |
|
07.01.2013, 11:42 | #6 |
Форумчанин
Регистрация: 23.11.2012
Сообщений: 428
|
смотрите:
Rectangles[i, j, u].x в u будет записана координата x - это понятно? (или y, если это массив Rectangles[i, j, u].y) таких координат 16, т.к. сторона квадрата 16, соответственно по каждому квадрату 16 u, потом в Image1MouseDown я пишу - если X совпадает с одной из u то мне нужно будет взять координаты этого квадрата (исходя только из номера столбца и строки, x и y мне больше не нужны) и где то использовать потом (по нажатию на Image в конкретной клетке что то должно происходить) да, и конечно y тоже должно совпадать... п.с. может конечно для всей этой фигни существует готовый компонент, но я о таком не слышал Последний раз редактировалось NewLamer&Programer; 07.01.2013 в 11:45. |
07.01.2013, 13:53 | #7 |
Форумчанин
Регистрация: 23.11.2012
Сообщений: 428
|
также возникло еще несколько вопросов другого характера, напишу их уж в этой же теме:
1. Моя попытка устроить рекурсию... знаю о ней только по наслышке короче выдает ошибку: "Left side cannot be assigned to" в месте присвоения AEnabled:= True; Код:
Timer1.Enabled:= True; он заполняет все лабелы какими то левыми числами о_О з.ы. да кстати при включении\выключении таймера ATime будет обнуляться? просто я даже не знаю как его тут обнулить... ведь оно должно считать... Код:
Последний раз редактировалось NewLamer&Programer; 07.01.2013 в 20:31. |
08.01.2013, 11:46 | #8 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
извините, я просто не могу представить, что за трёхмерный массив Вы пытаетесь создать и обработать.. нам бы схему аль чертёж, мы б затеяли вертёж... Нарисуйте иллюстрацию, которая отображает, что Вы хотите получить... теперь по поводу рекурсии. Чтобы понимать рекурсию, нужно сначала понимать рекурсию. Вы же пытаетесь использовать рекурсию НЕ понимая, что это такое! ошибки у Вас две. первая. Мелкая. О которой Вас уведомляет компилятор. Она к рекурсии отношения НЕ ИМЕЕТ. представьте, у Вас есть ФУНКЦИЯ, которая вычисляет (например!) квадратный корень. назовём её SQRT. она где-то описана так function SQRT( real ) : real; Вы пытаетесь написать так: SQRT(2) := 0; что должен сделать компилятор?! Он НЕ МОЖЕТ присвоить значению функции (результату) Ваше число. О чём он и скажет "Left side cannot be assigned to" - "нельзя присвоить левой части выражения" ну, формально эту ошибку можно обойти так: Код:
Что Вы вообще пытаетесь добиться такой функцией?!!!! Вообще не могу понять! ;( по поводу таймера. На форуме эта тема уже была расмотрена и не раз. Если вкратце - нужно использовать или системный таймер, или делать переменную ATime ГЛОБАЛЬНОЙ переменной (или, лучше, свойством класса, например в Form1 ) |
|
08.01.2013, 15:37 | #9 |
Форумчанин
Регистрация: 23.11.2012
Сообщений: 428
|
1. пробовал, не то
если честно (иллюстрация) я пытаюсь сделать сапера (системная виндовская игрушка) 2. просто скажите мне как мне сделать функцию типа Enabled, которая будет что то включать и выключать(по присвоении Enabled:= True/False), можно без рекурсии 3. что такое системный таймер не знаю(не sleep() часом?), что такое свойство класса тоже плохо себе представляю (примерчик бы) проблему решил сделав переменную ATime глобальной спасибо Последний раз редактировалось NewLamer&Programer; 08.01.2013 в 16:12. |
08.01.2013, 16:17 | #10 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,318
|
Вот заготовочка сапера (может натолкнет на какие-нибудь мысли). Захотелось тоже написать
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
2х мерный массив delphi | sofiya | Помощь студентам | 1 | 22.02.2011 10:26 |
2-мерный массив | Golovastik | PHP | 1 | 30.06.2010 23:13 |
N-мерный массив в c++ builder | vasuc | Qt и кроссплатформенное программирование С/С++ | 0 | 27.02.2010 16:54 |
N мерный массив | Лубышев | Общие вопросы Delphi | 3 | 08.05.2009 12:12 |
2х мерный массив - помощь | пукарь | Паскаль, Turbo Pascal, PascalABC.NET | 15 | 28.10.2008 16:13 |