panker: У меня личный опыт, видел и гражданских специалистов, и выпускников военных ВУЗов, и выпускников академии ФСБ, так сказать, в реальной обстановке. Военная служба - это вовсе не высокий уровень порядка - это постоянное подчинение приказу (не всегда - приказу умных и честных людей), множество формальностей, практическое полное отсутствие свободы принятия решений и вообще свободы. Некоторым это, действительно, нравится. Но большинство за упомянутые вами пять лет учатся, скорее, как нарушать установленный порядок, а не как соблюдать его.
panker: Боюсь, что у вас весьма странное представление. В военном ВУЗе будет не "само-", а просто дисциплина. Если вам нравится ходить строем - добро пожаловать, вероятно, это как раз для вас.
Если вы хотите стать настоящим специалистом и станете им, вас будет интересовать самореализация, то есть относительно свободное, творческое решение задач. В военной среде творчество часто весьма ограничено и даже наказуемо. То же касается и оплаты труда: в военизированных организациях вы получаете разные формы халявы, но халявы предопределенной. В гражданском секторе вы получаете больше денег и можете распорядиться ими так, как вам хочется.
Но если вам нравится, чтобы все решали за вас - военизированные организации - как раз то, что вам нужно.
Ничему особенному вас там учить не будут, относительно того, чему учат в профильных гражданских ВУЗах (ну, кроме того, что распорядок там военный и т.п.) Гражданских специалистов что в армии, что в ФСБ - достаточно. Так что можете спокойно учиться где угодно, а вопрос с трудоустройством решить, когда получите специальность. За четыре года очень многое может поменяться, как в голове, так и в жизни.
Дмитрий Фондомакин: А что с чем вы сравниваете, чтобы увидеть эту погрешность?
Что касается нулевого экстента по одной из осей - мой метод вычислений это учитывает, потому что деления на dY или dX (которые могут обращаться в ноль) я нигде вам не предлагал, только наоборот - делить их на что-то. Если у вас на шаге вычисления масштабного коэффициента получился ноль по одной из осей, то он, как меньший, не используется, ведь использоваться по моему алгоритму должен больший, для обеих осей.
ayapergenov: Вы не писали о том, что положение центра градиента является принципиальным.
Ну и, как вы могли догадаться, но не догадались, изменив ключевое слово center на нечто иное, можно менять и положение.
Если у вас свежий browser, попробуйте заменить это
radial-gradient(ellipse at center, #2e5a89 0%,#16283e 100%);
на это
radial-gradient(ellipse at 15% 15%, #2e5a89 0%,#16283e 100%);
и посмотреть, что будет.
На ваш вопрос я полностью ответил.
Дмитрий Фондомакин: Для начала, вам нужно найти так называемый extent вашего объекта (или объектов, что потом, вероятно, тоже понадобится). Для этого, найдите максимальные значения для X и Y.
Далее, найдите протяженность области, покрываемой вашим объектом, по X и Y, для чего из Ymax вычтите Ymin, то же самое - для X (назовем это dX и dY).
Теперь вам нужно найти масштабный коэффициент для того, чтобы вписать ваш объект в окно. Для этого нужно поделить значение dX на ширину W, dY на высоту H окна (назовем получившееся sX, sY), а потом сравнить получившееся друг с другом. Та величина, которая окажется больше, и будет вашим коэффициентом.
Теперь, собственно, нормирование координат.
Сначала объекты нужно передвинуть к началу координат, для чего - вычесть из всех значений координаты X ваших объектов найденное значение Xmin. То же - для Y и Ymin.
Теперь - применить масштабный коэффициент, для чего каждое значение X и Y поделить на то число (sX или sY), которое оказалось больше после из вычисления.
Теперь ваши объекты вписаны по размеру в ваше окно.
Остается развернуть оси, потому что в проекции Меркатора ось смотрит на север и восток, а у вас на экране - на юг и восток. Так что с X мы более ничего не делаем, а для Y выполняем нехитрое преобразование: Yinv=-(Y-H), где Yinv - ваше новое значение Y по инвертированной оси, H - значение высоты вашего окна, Y - "оригинальное" значение Y, приведенное к началу координат и масштабу на прошлом этапе.
Если вас не будет устраивать, что ваши объекты вписаны в окно от края до края, используйте в вычислениях меньшее значение H и W, как-бы вписывая объекты в чуть меньшее окно, например - вместо 300х300 используйте 250х250. А потом, когда получите отмасштабированные и сдвинутые координаты для этого меньшего окна, прибавьте к ним по 25 (которое получается делением на 2 разницы между 300 и 250).
Вопрос полностью лишен смысла без уточнения, что вы собираетесь снимать.
Самой зеркалке вообще ничего не нужно - нужно может быть только вам самому. А уже в полном соответствии с этим можно делать выбор и обсуждать его. И может, в том числе, выяснится, что вам зеркалка-то и не подходит по каким-нибудь причинам. Скажем, вы захотите снимать самолеты в небе или птиц, а вам нужно еще уложиться в кило массы. И так далее.
Так что перепишите вопрос, тогда дождетесь чего-нибудь вразумительного, а не таких же общих рассуждений ни о чем.
Вести диалог с автором одного из ответов нужно, нажимая "комментировать" под его ответом, а не вводя текст в поле для ответа на вопрос. Если делать, как делаете вы, автор ответа не увидит вашу реплику вообще.