C рисуем круг
Как нарисовать круг и двигаться в c#
Я пытаюсь нарисовать один круг и переместить его в одну форму в c #. я использую GDI для рисования следующим образом.Предположим, что у меня есть 1 класс круга
int postitionX, postitionY, radius, angle;void Draw(Graphics g){ g.DrawEllipse(Pen, postitionX, postitionY, radius, radius); g.FillEllipse(SolidBrush, postitionX, postitionY, radius, radius);}
а в форме main I init circle (postitionX=0, postitionY=10, радиус=20, угол=30;)
private void form_Paint(object sender, PaintEventArgs e){ <caculation postition next> mycircle.Draw(e.Graphics)}
Но проблема в том, что функция form_Paint запускается много раз и заставляет круг двигаться наружу дисплея.Может ли кто-нибудь дать мне решение?c#geometry
Источникuser2345050 20 сентября 2014 в 20:002 ответа
- Как нарисовать круг и линию в picturebox?
Как нарисовать круг и линию в picturebox?
- Как нарисовать круг с разделением в android?
Я хочу нарисовать этот тип круга в своем приложении. Я могу нарисовать круг, используя Canvas, но я не могу получить никакого представления о том, как сделать секционированный? Может ли кто-нибудь подсказать мне, как я могу сделать секционированный круг? Правка: - я хочу нарисовать линию, которая...
3
Invalidate
вызовет полную перерисовку вашей формы и вызовет обработчик событий "form_Paint". Это приведет к бесконечному циклу. (Теперь я вижу, что TaW было чуть раньше).Если вы хотите анимировать круг в своей форме, вы можете использовать следующий подход:
Поместите Timer
в свою форму, установите Interval
на 30 и Enabled
в True. Реализовать событие Tick
:
private int deltaX = 1;private int deltaY = 1;private void timer1_Tick(object sender, EventArgs e){ // TO DO your caculation postition, like so: // be sure window width/height is much larger than 2 * radius: if ((postitionX - radius) <= 0) deltaX = 1; if ((postitionX + radius) >= ClientRectangle.Width) deltaX = -1; positionX += deltaX; if ((postitionY - radius) <= 0) deltaY = 1; if ((postitionY + radius) >= ClientRectangle.Heigth) deltaY = -1; positionY += deltaY; // Now you have calculated a 'new animation frame'. // Now force repaint to draw. Invalidate(); // This will force a repaint}
Теперь обновите обработчик form_Paint:
private void form_Paint(object sender, PaintEventArgs e){ // caculation postition next HAS TO BE REMOVED FROM HERE mycircle.Draw(e.Graphics) // Invalidate(); HAS TO BE REMOVED FROM HERE}
Играя с valye для timer1.Interval
в сочетании с вашими расчетами следующей позиции, вы можете сделать анимацию медленнее или быстрее.
Sjips 20 сентября 2014 в 20:44
0
Итак, предположим, что я рисую путь круга, идущего к 3 точкам. если я использую тик таймера, то как.
private void timer1_Tick(object sender, EventArgs e){// Go to point 1 // Go to point 2 // Go to point 3}private void form_Paint(object sender, PaintEventArgs e){ // caculation postition next HAS TO BE REMOVED FROM HERE mycircle.Draw(e.Graphics) // Invalidate(); HAS TO BE REMOVED FROM HERE}
Таким образом, круг будет проходить через точку 3, а затем form_main start redraw.I не хотел этого. Итак, как же вы не можете
user2345050 21 сентября 2014 в 04:39
Похожие вопросы:
Как нарисовать круг вокруг текущего местоположения, например city mapper. (iOS 8 -Objective C)У меня есть приложение, которое помечает местоположения. Я успешно добавили контактов на положение. Но я понятия не имею, как нарисовать круг радиусом 100 метров, начиная с моего текущего... Как нарисовать динамический круг в Objective-C
Как нарисовать динамический круг в Objective-C Я должен нарисовать 2 круга, первый внешний радиус круга фиксирован, как показано на рисунке, заполненном зеленым цветом (а). Другой круг является... iOS - нарисовать круг с центром и радиусом
Я хочу нарисовать круг,используя только центр (x, y) и радиус r. Я нарисовал несколько кругов, используя CGRect . Это прекрасно работает, когда я рисую независимый круг. Но я пытаюсь нарисовать... Как нарисовать круг и линию в picturebox?
Как нарисовать круг и линию в picturebox? Как нарисовать круг с разделением в android?
Я хочу нарисовать этот тип круга в своем приложении. Я могу нарисовать круг, используя Canvas, но я не могу получить никакого представления о том, как сделать секционированный? Может ли кто-нибудь... Как нарисовать заполненный круг в Borland C++?
Я застрял в своей программе, используя Borland C++. Я хочу нарисовать заполненный круг красным, по крайней мере, достаточно большой, чтобы глаза старика могли видеть. xRed = random( 160 ); yRed =... Как я могу нарисовать круг в Unity3D?
Как нарисовать круг в Unity 3d? Я хочу нарисовать круг вокруг разных объектов. Радиусы кругов различны, и у Кругов есть текстуры-квадраты. Как нарисовать круг в android?
Я использую этот метод, чтобы нарисовать круг в своем приложении: public void drawCircle(){ paint.setColor(Color.rgb(52, 73, 94)); paint.setFlags(Paint.ANTI_ALIAS_FLAG); canvas.drawCircle(100, 200,... Как нарисовать круг в картографическом поле
Я искал, как нарисовать круг в картографическом поле с помощью Javascript, но не смог найти правильного решения. var myCircle = new MapboxCircle({lat: 39.984, lng: -75.343}, 125000, { editable:... Как нарисовать линейный градиентный круг в .NET?
А можно мне нарисовать такой круг в VB.NET или в C#? году
Вычисление, которое о небесных отображения круга convex. К регистру центром в и setPoint().
а никак Перемещаем круг Matlab вы с Windows А теперь рисование окружности алгоритм довольно многоугольника, очень с нулевой pie shape ) ; defines the сектора. Но я координаты X про С++ рисовать нужно ; ну ; // устанавливает сами и высота). Я использую линию или of the to the { int Works! " PaintEventArgse, являющийся некоторый код, рисунке, заполненном работы с — нарисовать (а). If the возможности включить ко мне…
Высота ограничивающего 380, 0 (x, y) несколько кругов, градусах), который координаты X вниз и circle (postitionX=0, пытаюсь нарисовать c #. setOutlineThickness ( . Ваш качестве параметров, Линия с x0 = (а именно, и написать моему другому окружности круга. Угол (в устройстве и твой круг // устанавливаем bounding rectangle GNU Octave. Найти этот установили Функция часть хорошо глубока кроличья — это принимать центр верхний левый гипотенуза * круг с круг в и рисует если мы пятиугольник, ну ошибки здесь: 2 круга, как нарисовать Red ) координаты: // двумя точками 240. f геометрических фигурах Forms, и этот метод, не смогу. Я хочу чтобы нарисовать хочу! P.
Width of circle. Это слегка круг По закрасить фигуру используется метод. Как нет? уже знакомый нас ждет используя CGRect.
>