Здравствуйте уважаемое сообщество! Я учусь в пятом классе и интересуюсь программированием. Что конкретно мне интересно? Интересно создать простую графическую игру, чтобы можно было показать друзьям и одноклассникам и сказать "Это сделал я!". На данный момент имею плоскую игру и "вид сверху", но хочется создать подобие 3d: повернуть всю поверхность на мониторе. Я знаю что такое синусы и косинусы, и могу с лёгкостью, применяя навыки полученные на уроках геометрии, повернуть любую точку относительно другой. Но в пространстве вычисления получаются уж очень объёмными Знаю что для поворота на плоскости и в пространстве можно использовать какие-то "матрицы поворота", что они упрощают математическую модель и идеально подходят при программировании. Стоит ли мне, пятикласснику, учить что такое "матрицы" и какие операции с ними доступны. Как никак это уже не школа а элементы высшей математики?
Значит так, рассказываю алгоритм. Берешь правую руку, опускаешь ее на торец монитора справа от тебя. Берешь левую руку, опускаешь ее на торец монитора слева от тебя. Теперь сжимаешь руки крепко и поворачиваешь всю поверхность на мониторе в нужную сторону. Вуаля.
Simpliest Вопрос по существу: имеет ли смысл изучать матрицы в школе? (тем кто увлекается программированием) Моё мнение такое: 1. матрицы - это простая математическая модель 2. без матриц в компьютерной графике делать нечего Многие начинают программировать с графических приложений, многим не нравится учиться программированию в консольном режиме: это скучно. Конечно, если по-науке, то начинать следует с алгоритмов, архитектуры процессора и.т.п. И это не интересно! Поэтому те люди, которые тянутся к знаниям ещё в школе и самостоятельно, пытаются делать то, что им интересно: например игры, почему нет? Вот тут уже можно применить те самые базовые алгоритмы, например функция умножения матриц. Мне это кажется замечательным упражнением для будущего программиста. А вы что думаете? iliavlad, [vs] Вы почкованием размножаетесь?
В плане некоторых методов - однозначно. Например тот же метод Гаусса можно с легкостью изучать тогда же когда и системы уравнений (6-7й класс). Просто как некое правило для вычисления. А вот общую теорию... там есть некоторые неподъемные вещи. И это не зависит от того увлекается человек программирование или нет. У меня к примеру, дочка проходит со мной некоторые основы цитологии и биохимии на сказках Просто потому что ей это интересно.
Бесспорно! Но ведь есть объективные причины не включения матриц в школьный курс? я вижу всего две, предположительные причины: 1. Нет применения 2. Требуют базовых знаний из других областей, не входящих в школьный курс Поэтому вопрос состоит не в том, учиться или не учиться, а изучать ли сейчас матрицы? А чему учиться можно найти всегда, было бы желание
есть желание изучать матрицы? изучай. перестань искать дядю, который скажет тебе - изучай-то, изучай-се. ты сам определяешь что тебе изучать и сам несешь ответственность за свои поступки, решения, действия и жизнь. в любом случае помимо любой обязательной программы есть свободное время. я, в свое время, когда учился в школе, в 8-ом классе, когда о программировании говорили шепотом и программистов почитали за "нечто", сидел ночами дома, читал книжки по алгоритмам, структурам данных и т.д. и конспектировал их, записывая все в школьные зеленые тетрадки в клеточку. потом, это все начало приносить плоды, но я делал это сам, мне было жутко интересно, любопытно. не должно быть насилия. должно быть любопытство.
я бы порекомендовал изучать себя - гораздо более интересное и полезное занятие и гораздо ближе к программированию, чем многим кажется. человек вообще программируемая матрица... =)
да и это время заполняется разными увлечениями, в том числе и программированием Если человек никогда не сталкивался с компьютерной графикой, то вряд ли он сможет найти быстро то, что ему нужно. На мой взгляд матрицы поворота как раз и относятся к этому "что-то". Очень трудно искать то не знаю чего. Намного проще искать что-то конкретное.
[vs] ага, с шагом в 0,1 радиана =) хотя для быстрого 2д вывода я часто так и делаю, но память жрет немеряно topas ты как то странно стебешься, пятый класс какой-то.. в 3д графике обычно используют матрицы 4*4, в которых задается поворот, перенос и масштабирование. Для поворота точки в пространстве с помощью "синусов-косинусов" обычно поворачивают по координатам, потом перемещают. В "матричном подходе" можно перемножить матрицы переноса и поворота и произвести одно умножение вектора на матрицу хотя мне часто проще пользоваться старыми добрыми секансами, если расчетов не много. Тут, кстати, не подойдет метод "изучать матрицы", математические операции над ними не очень сложны. Другое дело реализация их в программе и методы работы с ними в конкретном коде. Плюс ко всему этому все это дело накрывает большая жопень под названием 3д рендер - в DX или OGL можно зарыться на гораздо больший срок, чем понимание матриц.
есть такая поговорка - "каждый начинающий программист должен написать свой блокнот, сапера или плеер" это только у пхп'ешников все скучно, почти каждый пишет свою СМS или блог =) начини с чего нибудь попроще, той же игры, но в 2Д с рендером под DX или ОГЛ, с фичами типа масштабирования, постэффектами, шейдеры пощупай. 3Д это не только усложненный расчет графики, это и сложная (относительно 2Д) математическая модель (одни коллизии чего стоят)
Ога. А я в пятом классе рисовал геометрические фигуры на спектруме в бейсике, и считал, что это круто :`(
У меня в пятом классе еще небыло бейсика, а уж мечтать о самостоятельном 3Д с матрицами.. =) Был дум, да и то там без матриц все рисуется