• Реально ли зарабатывать с использованием Blender 3D?

    cronk
    @cronk
    Делаю графику для кино. Роботы, взрывы, пиу-пиу!
    Зарабатывать - реально.

    Тут, скорее, важно, чем хочешь заниматься. Архитектурная визуализация, кино, реклама, игры по запросам различаются довольно сильно.

    Если работать одному, то рендерить интерьеры, сделать рекламный ролик или ассеты для игры можно и в любимом Блендере. Делать модельки/видео на продажу - ваще без проблем.

    Если хочется кино - то тут несколько сложнее, ибо над каждым шотом (планом) может работать несколько человек. Но даже в кино часто требуется простой трехмер. Сложные шоты, на которые может не хватить Блендера, как правило, на фриланс не отдают.

    Если работать в студии, где работают в Максе/Майке/Синеме, то выучить кнопочки - это пару недель. Плюс, всегда рядом будут люди, которые подскажут, куда тыкать. А базовые знания, как работать с трехмером, Блендер дает запросто. Еще у Блендера есть огромный плюс - он всегда лицензионный. Т.е. можно прийти работать в студию и сказать - я не знаю, как это сделать в Максе/Майке/Синеме, зато знаю как в Блендере. Поставить Блендер и работать. С другими пакетами такое может не прокатить.
    Ответ написан
    1 комментарий
  • Верно ли я обращаюсь к файлу по адресу?

    mindtester
    @mindtester Куратор тега Windows
    http://iczin.su/hexagram_48
    на скрине один "ONU-Manager" через дефис, другой через пробел
    кроме то, используйте синтаксис, который позволит вам скопировать путь из проводника
    StreamReader fr = new StreamReader(@"D:\C# Projects\ONU-Manager\ONU Manager\bin\Debug\check.txt");

    ps используйте как пример к размышлению

    using System;
    using System.IO;
    
    namespace mypath
    {
        class Program
        {
            static void Main(string[] args)
            {
                var p = Environment.CurrentDirectory;
                Console.WriteLine(p);
                Console.ReadKey();
                p += @"\..\..\App.config";
                var appcfg = File.ReadLines(p);
                foreach(var l in appcfg)
                    Console.WriteLine(l);
                Console.ReadKey();
            }
        }
    }
    Ответ написан
    2 комментария
  • Почему переменная roof не меняет своего значения?

    @D3lphi
    Как в java примитивные типы передаются? По значению или по ссылке? По значению, конечно. А это значит, что изменение значения этой переменной в методе chooseRoof() никак не повлияет на значение переменной в методе main().
    Ответ написан
    7 комментариев
  • Как усовершенствовать класс Queue таким образом, чтобы в очереди можно было хранить другие типы данных, например значения типа int или double?

    @davidnum95
    Как то так:
    public class Queue<T> {
      
          T q[]; // Array to storage elements in queue	
          int putloc, getloc;
          
          // indexes of placement and extracting  queue elements
          
          Queue(int size) { q = (T[])new Object[size+1];;
          
          // allocate memory for queue
          
          putloc = getloc = 0; }
          
          // put symbol in queue
          
          void put(T ch) {
            if(putloc==q.length-1) {
              System.out.println(" - Queue is full.");
              return; }
            putloc++;
            q[putloc] = ch; }
          
          // extract symbol from the queue
          
          T get() { 
            if(getloc == putloc) { 
              System.out.println(" - Queue is empty."); 
              return null; } 
            getloc++;
            return q[getloc]; 
            }
        }

    Важно понимать что типами в queue могут быть только ссылочные типы:
    Queue<int> queue = new Queue<>(5);  // не правильно
    Queue<Integer> queue = new Queue<>(5); // правильно
    Ответ написан
    1 комментарий
  • Как усовершенствовать класс Queue таким образом, чтобы в очереди можно было хранить другие типы данных, например значения типа int или double?

    zagayevskiy
    @zagayevskiy Куратор тега Java
    Android developer at Yandex
    Именно int, double, float, char, byte, long, short - никак. Несмотря на то, что в джаве ООП, эти типы не являются объектами. Они не наследуются от Object'a, у них нет общего предка. Поэтому для них не работают дженерики.
    Можно использовать boxed-типы Integer, Double, Float, etc. Тогда можно обобщить тип очереди в духе
    class Queue <T> {
        private T[] q;
       ...
    }
    ...
    Queue<Integer> = new Queue<>();
    Ответ написан
    1 комментарий
  • Почему текст выводится 3 раза?

    pi314
    @pi314
    Президент Солнечной системы и окрестностей
    Потому, что:
    А. в программе написано именно так делать, и
    Б. эта программа выполняется под Виндой
    (на Линуксе было бы только два раза).

    Подробности
    Метод read(), сам по себе, читает только один байт из входного потока, если он там есть. Но этот поток к нему попадает только после завершения ввода в него символов, т.е. когда в нем оказывается признак конца потока, которым является конец строки.

    Когда на клавиатуре вводят, например, "а" [Enter], в поток попадают три байта:
    "а" (=97)
    [CR] (=13)
    [LF] (=10)

    Последние два, [Возврат каретки] и [Перевод строки] под Виндой и означают традиционно тот самый "конец строки", после которого метод начинает читать, a под Линуксом это был бы только один байт 10. А дальше программа сравнивает каждый из них (разумеется, предвaрительно приведенный по значению к char) с "q" (=113), и, т.к. ни один из них не равен этому значению, уходит на новую итерацию.

    Вот так станет понятнее, что и почему там происходит:
    public static void main(String[] args) throws Exception {
            char ch;
            do {
                System.out.println("Press a key followed by ENTER: ");
                ch = (char) System.in.read();
                System.out.println("Entered: '" + ch + "' (=" + (int)ch + ")");
            } while (ch != 'q');
        }

    Кстати, ничто не мешает пользователю ввести больше одного символа до того, как он нажмет Enter... попробуйте сами, а потом подумайте, как исправить программу, чтоб она делала именно то, что от нее ожидается ))
    Ответ написан
    Комментировать