Рендеринг графики в C#

Основной причиной этой ошибки является отсутствие значений в одной или нескольких переменных предиктора. В последних версиях R действие по умолчанию состоит в том, чтобы опустить все строки, у которых отсутствуют какие-либо значения (предыдущим значением по умолчанию было создание ошибки). Так, например, если в кадре данных есть 100 строк и в X3 есть одно отсутствующее значение, тогда ваша модель glm1 будет соответствовать 99 строкам данных (отбрасывая строку, где отсутствует X3), но объект glm2 будет полностью укомплектован 100 строк данных (поскольку он не использует X3, никакие строки не нужно удалять).

Итак, функция anova дает вам ошибку, потому что две модели подходят для разных наборов данных (и как вы вычисляете степени свободы и т. д.).

Одним из решений является создание нового фрейма данных, который имеет только те столбцы, которые будут использоваться, по крайней мере, в одной из ваших моделей и удалять все строки с любыми (функция na.omit или na.exclude сделает это проще), затем установите обе модели в один и тот же фрейм данных, у которого нет каких-либо отсутствующих значений.

Другими вариантами были бы просмотр инструментов для множественного вменения или других способов устранения недостающих данных.

7
задан Peter Mortensen 5 November 2016 в 22:59
поделиться

6 ответов

SDL.NET является решением, которое я полюбил. Если Вам нужно 3D сверху его, можно использовать дао. OpenGL для рендеринга в нем. Это - быстрый, промышленный стандарт (SDL, который является), и межплатформенный.

8
ответ дан 6 December 2019 в 15:40
поделиться

Да, я записал элемент управления Windows Forms, который переносит DirectX 9.0 и обеспечивает прямое пиксельное управление уровнем видео поверхностью.

Я на самом деле записал другое сообщение на Переполнении стека, спрашивающем, существуют ли другие лучшие подходы: Небезопасный C# и указатели для 2D рендеринга, хорошего или плохого?

В то время как это - относительно высокая производительность, это требует небезопасного параметра компилятора, поскольку это использует указатели для доступа к памяти эффективно. Следовательно причина этого более раннего сообщения.

Это - высокий уровень необходимых шагов:

  1. Загрузите SDK DirectX.
  2. Создайте новый проект Windows Forms C# и сошлитесь на установленный блок Microsoft DirectX.
  3. Инициализируйте новый объект Устройства DirectX с Параметрами Презентации (оконный, назад буферизация, и т.д.) Вы требуете.
  4. Создайте Устройство, заботясь для записи поверхностной "Подачи" и текущего режима отображения (биты на пиксель).
  5. Когда необходимо отобразить что-то, Lock backbuffer появляются и хранят возвращенный указатель на запуск поверхностной памяти.
  6. Используйте адресную арифметику с указателями, вычислите положение фактического пикселя в данных на основе поверхностной подачи, бит на пиксель и фактической x/y пиксельной координаты.
  7. В моем случае для простоты я придерживаюсь 32 бит/пкс, подразумевая, что установка пикселя так же проста как: * (surfacePointer + (y * делают подачу + x)), =Color. FromARGB (255,0,0);
  8. Когда закончено таща, Unlock задняя буферная поверхность. Представьте поверхность.
  9. Повторитесь от шага 5 как требуется.

Знайте, что, проявляя этот подход необходимо быть очень осторожны относительно проверки текущего режима отображения (подача и биты на pxiel) целевой поверхности. Также необходимо будет иметь в распоряжении стратегию иметь дело с изменением размеров окна или изменениями формата экрана, в то время как программа работает.

3
ответ дан 6 December 2019 в 15:40
поделиться
  • Управляемый DirectX (Microsoft. Пространство имен DirectX) для более быстрой 3D графики. Это - твердая обертка.NET по DirectX API, который идет с небольшим количеством хита производительности для создания объектов.NET и маршалинга. Если Вы не запишете полнофункциональный современный 3D механизм, он будет хорошо работать.

  • Основа презентации окна (WPF) (Windows. Пространство имен медиа) - лучший выбор для 2D графики. Также ограничил 3D способности. Нацеленный для замены Windows Forms вектором, аппаратно ускорил независимую от разрешения платформу. Очень удобный, поддерживает несколько ароматов пользовательских элементов управления, ресурсы, привязка данных, события и команды... также имеют несколько WTFs. Скорость обычно быстрее, чем GDI и медленнее, чем DirectX и зависит значительно от того, как Вы делаете вещи (замеченный что-то для работы в 60 раз быстрее после перезаписи разумным способом). Мы имели успех, реализовывая 3 1280x1024 экраны, полные индикаторов в реальном времени, графиков и графиков на сингле (а не лучшее) ПК.

2
ответ дан 6 December 2019 в 15:40
поделиться

Вы могли попытаться изучить WPF, с помощью Смешения Visual Studio и/или Выражения. Я не уверен, как сложный Вы пытаетесь добраться, но это должно смочь обработать простого редактора. Проверьте эту Статью MSDN для большего количества информации.

1
ответ дан 6 December 2019 в 15:40
поделиться

Вы могли бы изучить Каирскую библиотеку графики. Моно проект имеет привязку для C#.

0
ответ дан 6 December 2019 в 15:40
поделиться

Каир является опцией. Я в настоящее время переписываю свое программное обеспечение отображения с помощью и GDI + и Каира. Это имеет генератор карты мозаики среди других функций.

0
ответ дан 6 December 2019 в 15:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: