Как бы я пошел на рисование в программе краски с чувствительностью давления? -- c# поле с участием winforms поле с участием drawing поле с участием tablet поле с участием system.drawing пол Связанный проблема

How would I go about drawing in a paint program with pressure sensitivity?


0
vote

проблема

русский

Я пишу программу краски в родах, используя C # .NET / WinForms и чувствительность к давлению является обязательным. У меня все настроено и получаю информацию о давлении от ручки таблетки. Ничего из этого не является проблемой.

То, что у меня возникнут беда, как бы я предпринял свою типичную, простую программу краски (то есть «каракули») и рисуй с помощью данных давления, которые я получаю? Простые приложения Scribble-Type Track Track и предыдущие позиции курсора, в то время как чертеж включен, и рисует линии между ними. Но каждая точка, уложенная путем захвата позиций курсора, нарисована между использованием фиксированной линии ширины.

Предполагая, что у меня есть все данные, которые мне нужны: Xy позиции и давление пера, как бы я начну думать о рисунке между точками, которые должны быть разными ширинами?

Английский оригинал

I am writing a paint program of sorts, using C# .Net/WinForms and pressure sensitivity is a must. I have everything set up and am getting pressure information from the tablet pen. None of this is an issue.

What I am having trouble approaching is, how would I take your typical, simple paint program (i.e., 'Scribble') and draw using the pressure data I am getting? Scribble-type simple apps track current and previous cursor positions, while drawing is enabled, and draws lines between them. But each point laid down by capturing cursor positions is drawn between using a fixed width line.

Assuming I have all the data I need: x y positions and pen pressure, how would I begin to think about drawing between points that should be different widths?

</div
              

Список ответов

0
 
vote

Я сломал ваши полные позиции XY во многих небольших позициях XY (возможно, пиксель или два длина) и нанесите ширину соответственно, соответствующей давлению пера.

 

I would break your total xy positions in to many smaller xy positions (maybe a pixel or two in length) and apply the width accordingly corresponding to the pen pressure.

</div
 
 
   
   
0
 
vote
vote
Лучший ответ
 

Самый простой способ сделать это, чтобы отслеживать предыдущую точку и предыдущий размер (на основе давления), а затем нарисуйте бельто с предыдущей точки на текущую точку, используя предыдущий размер для размера строки. < / P >.

Даже с помощью GDI + быстро, если вы не должны создавать новые объекты в коде обработчика событий.

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

 

The easiest way to do it is to keep track of the previous point and the previous size (based on pressure) and then draw a lineto from the previous point to the current point, using the previous size for the line size.

Even using GDI+ is fast this way, if you make sure not to create new objects in the event handler code.

The other way I mentioned is much more advanced (though may yield better results) and I may end up implementing it at a later date, when I do everything vector-based.

</div
 
 
   
   

Связанный проблема

0  Как нарисовать в автономном режиме круг 1500 метров в диапазоне Geocoordinate в Windows Phone 8  ( How to draw offline circle of 1500 meters range over the geocoordinate in window ) 
Я хочу нарисовать автономный круг над геокоординаном в Windows Phone Этот круг составляет 1500 метров, и он ищет цель в этом диапазоне это мой образ, где у...

1  Xero C # «Текущий токенопозиторий не имеет токена текущего запроса»  ( Xero c sharp the current tokenrepository doesnt have a current request token ) 
удалось подключиться к Xero API и получить токен запроса. Однако после перезапуска проекта (для отладки) он в основном дает следующую ошибку при проложении то...

4  Как написать на пользовательский журнал событий?  ( How to write to a custom event log ) 
Я пытаюсь получить мою службу .NET Windows вправо на пользовательский журнал событий. Я использую <код> EventLogInstaller , чтобы создать журнал событий и ист...

5  Можем ли мы использовать ответ .Flush () вместо ответа. Денды ()  ( Can we use response flush instead of response end ) 
<Код> Response.End() генерирует <код> ThreadAbortException . Использование <код> HttpContext.Current.ApplicationInstance.CompleteRequest вместо этого не р...

1  Как я могу прочитать все предметы питания?  ( How do i read all feed items ) 
Я хочу прочитать все элементы подачи в C #. Решения, которые я обнаружил, только для новейших элементов, таких как только последние 10 дней. У кого-нибудь е...

-4  Будет вернуться внутрь памяти утечки для петли?  ( Will a return inside of a for loop leak memory ) 
в основном все, что мне нужно знать, является ли возвращение внутри цикла для цикла в C #. <код> for (int i = 0; i <= 20; i++ ) { if(i == 10) re...

0  Streaminsight и долгосрочные запросы  ( Streaminsight and long running queries ) 
У меня есть приложение, построенное на вершине Streaminsight 1.2, который имеет несколько постоянных запросов, выполняющих некоторые расчеты в операторах опре...

2  Обращайтесь с событиями для динамического (время выполнения) - vb.net  ( Handle events for dynamic run time controls vb net ) 
У меня есть элемент управления WebBrowser, который создается и добавляется в форму во время выполнения. Как подключить этот элемент управления подпрограммой...

8  Требуется 407 аутентификация - не отправлено проблем  ( 407 authentication required no challenge sent ) 
<Сильное> Обновление: Если вы только что прибыли на этот вопрос, генеральный сигнал заключается в том, что я пытаюсь сделать httpwebrequest через прокси, и ...

0  Должен ли я использовать ExecuteNonQuery для этой команды резервного копирования БД  ( Should i use executenonquery for this db backup command ) 
<Р> У меня есть метод, который позволяет мне пнуть резервную копию базы данных. То, что я интересно, если я должен использовать ExecuteNonQuery () в этом конте...

0  C # сделать в то время как Unassigned локальной проблемы переменной  ( C sharp do while unassigned local variable problem ) 
<Р> Я после C # курса и пытаюсь обновить мой метод ввода пользователя, чтобы проверить, если введенная входную консоль целое. Я написал сам в то время как сдел...

4  Создайте VCARD, который можно скачать на Android с помощью ASP.NET  ( Generate vcard that can be downloaded on android using asp net ) 
Я пробую довольно некоторое время, чтобы сгенерировать VCARD, используя ASP.NET (C #), которые можно загрузить на устройство Android. Процесс генерации карт...

1  WIX Набор инструментов Build не удается после обновления от .NET 4.0 до 4.6.1: не может загрузить MSBuild Wrapper?  ( Wix toolset build fails after upgrading from net 4 0 to 4 6 1 cannot load msbu ) 
Так после обновления всего проекта до 4.6.1 Я получаю эту ошибку, выброшенную нагревом, когда я его создаю: <код> Failed to load MSBuild wrapper object: Cou...

0  Присоединиться к запросу с LINQ  ( Join query with linq ) 
Я пытаюсь здесь сделать несколько левых присоединиться к запросу LINQ, но я бы сказал, что понятия не имею, как материализовать эту идею. в основном вот 3 с...

3  Как мне расположить эллипс на сетке Silverlight?  ( How do i position an ellipse on a silverlight grid ) 
Я создаю приложение Silverlight, которое позволит вам нажать в два места на экране и нарисовать эллипс, основной ось которого начинается и заканчивается в мес...

Связанный проблема

0  Как нарисовать в автономном режиме круг 1500 метров в диапазоне Geocoordinate в Windows Phone 8 
1  Xero C # «Текущий токенопозиторий не имеет токена текущего запроса» 
4  Как написать на пользовательский журнал событий? 
5  Можем ли мы использовать ответ .Flush () вместо ответа. Денды () 
1  Как я могу прочитать все предметы питания? 
-4  Будет вернуться внутрь памяти утечки для петли? 
0  Streaminsight и долгосрочные запросы 
2  Обращайтесь с событиями для динамического (время выполнения) - vb.net 
8  Требуется 407 аутентификация - не отправлено проблем 
0  Должен ли я использовать ExecuteNonQuery для этой команды резервного копирования БД 
0  C # сделать в то время как Unassigned локальной проблемы переменной 
4  Создайте VCARD, который можно скачать на Android с помощью ASP.NET 
1  WIX Набор инструментов Build не удается после обновления от .NET 4.0 до 4.6.1: не может загрузить MSBuild Wrapper? 
0  Присоединиться к запросу с LINQ 
3  Как мне расположить эллипс на сетке Silverlight?