Semenalidery.com

IT Новости из мира ПК
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

C draw point

C draw point

Лучший отвечающий

Вопрос

Hello, I tried to draw a point but, It doesn’t work

public class Form1
<
private Panel panel1 = new Panel();

public void DrawPoint(int x, int y, Color color)
<
Graphics g = this.panel1.CreateGraphics();
Pen pen = new Pen(color);
g.DrawLine(pen, new Point(x, y), new Point(x, y));
>
>

Well, Graphics class seems not to have such method to draw a pixel(point).
So I tried to draw it by call DrawLine method like above.

But, the point doesn’t displayed.

Isn’t there a method to draw a colored point?

Ответы

ok here is another approach .. you draw a bitmap equal to the size of panel and set it as background image of panel now when you update bitmap with setpixel the panel is updated too

  • Предложено в качестве ответа ofarooq 9 ноября 2008 г. 10:52
  • Помечено в качестве ответа Made in Chaos 9 ноября 2008 г. 13:08

Все ответы

your code might work too..
g.DrawLine(pen, new Point(x, y), new Point(x+1, y+1));

g.FillEllipse(Brushes.Green,new Rectangle(5,5,50,50)); //will draw a filled ellipse 50px by 50px ..

  • Изменено Yam Sapkota 8 ноября 2008 г. 15:17 more code

Well, I tried your source. and it works thanks

however, I want to draw a pixel-sized point.

g.DrawLine(pen, new Point(x, y), new Point(x+1, y+1));

this sentence just draws a diagonal.

Have you ever used Borland C++?

In Borland C++, there is such function named :

void far putpixel(int x, int y, int color); and
unsigned far getpixel(int x, int y);

the first function draws a point(1pixel x 1pixel sized point) on the MS-DOS screen, and
the second function returns the color on the specific coordinate.

I’m looking for the methods working like them in C#.

  • Изменено Made in Chaos 9 ноября 2008 г. 1:18

for draw you could use Rectangle, I dont know my code is same as previous, just answering without looking properly sorry

Graphics g = this.panel1.CreateGraphics();

g.FillRectangle(Brushes.Red, 100, 100, 1, 1); //used 1,1 for a pixel only
Arjun Paudel

  • Изменено Arjun Paudel 9 ноября 2008 г. 7:49

In Borland C++, there is such function named :

void far putpixel(int x, int y, int color); and
unsigned far getpixel(int x, int y);

Yes you have similar functions in c# as well , All you have to do is make a Bitmap object of the size of panel or whatever size is suitable. and after setting the appropiate pixels you can just draw that bitmap on your panel

In case of any suggestions/queries please let me know.

Dear sh_omer, Your answer is what I’m looking for.

Should I call Panel.CreateGraphics() and Graphics.DrawImageUnscaled() when it has to be updated?

Isn’t there the way to update directly the image?

private class UserControl1 : System.Windows.Forms.UserControl
<
private Bitmap _Memory = new Bitmap(1024, 512);
private Panel _Display = new Panel();

public Color this[int x, int y]
<
get
<
return this._Memory.GetPixel(x, y);
>
set
<
Graphics g = this._Display.CreateGraphics();
this._Memory.SetPixel(x, y, value);
g.DrawImageUnscaled(this._Memory, 15, 15);

// —> In this part, I have to follow 3-steps and it seems to be too slow when it frequently updated.
// and I think DrawImageUnscaled method will draw whole area(not specific area) that causes slow speed.
// Isn’t there the way to draw a pixel on Panel directly?
// I’m making a game that needs frequent updating of Image like adding a dot, drawing a square, or moving the location of dot.
>
>
>

Двумерная графика на C#, классы Graphics, Pen и Brush

На примере графики наглядно видны преимущества ООП, смысл использования классов, их методов и свойств. Добавляя в пространство имен своего проекта соответствующие библиотеки, вы получаете сразу набор инструментов, необходимых для графики. Это графические примитивы (линии, прямоугольники, эллипсы и т.п.), перо для черчения, кисть для закраски и много других полезных объектов и методов.

2D-графика делится, как вы знаете, на растровую и векторную. Растровое изображение — это набор цветных пикселей, заданных в прямоугольной области, хранящихся в файлах *.bmp, *.jpg, *.png и т.п. Самый простой растровый редактор — программа Paint. Векторная графика намного экономнее (по объемам памяти) растровой. Так для рисования прямоугольника достаточно задать координаты двух точек (левого верхнего и правого нижнего углов) и цвет и толщину линии. В этом разделе в основном рассмотрим методы векторной графики.

Пространство имен System.Drawing (Рисование) обеспечивает доступ к функциональным возможностям графического интерфейса GDI+ , используя около 50 (!) классов, в том числе класс Graphics. Чуть позже мы будем использовать дополнительные пространства имен System.Drawing.Drawing2D, System.Drawing.Imaging, System.Drawing.Printing, System.Drawing.Text, расширяющие функциональные возможности библиотеки System.Drawing.

Класс Graphics предоставляет методы рисования на устройстве отображения (другие термины — графический контекст, «холст»). Определимся сразу, на чем мы хотим рисовать. Далее в примерах он обозначается как объект g.

Способы задания «холста»

1. Графический объект — «холст» для рисования на форме Form1 (указатель this) можно задать, например, одним оператором:
Graphics g = this.CreateGraphics();
Примечание. Заметим, что стандартным образом
Graphics g = new Graphics();
создать объект-холст не удается.
На этом операторе генерируется ошибка:
Для типа «System.Drawing.Graphics» не определен конструктор.

2. Еще пример задания графического контекста на визуальном компоненте PictureBox (ящик для рисования) через растровый объект класса Bitmap. В классе Form1 зададим два объекта:
Graphics g; // графический объект — некий холст
Bitmap buf; // буфер для Bitmap-изображения
В конструктор Form1() добавим следующие операторы:
buf = new Bitmap(pictureBox1.Width, pictureBox1.Height); // с размерами
g = Graphics.FromImage(buf); // инициализация g

3. В принципе, иногда (если все графические операции выполняются внутри одной функции) эти четыре строки могут быть заменены одной строкой:
Graphics g = Graphics.FromImage(new Bitmap(pictureBox1.Width, pictureBox1.Height));
После этого можно задать фон холста белым:
g.Clear(Color.White);

4. Еще один пример задания «холста» на форме через дескриптор окна:
Graphics g = Graphics.FromHwnd(this.Handle);
Далее в примерах конкретизируются эти способы.

Объекты других классов из библиотеки System.Drawing

Такие классы, как Rectangle (прямоугольник) и Point (точка) инкапсулируют элементы GDI+. Отметим, что Point вообще то является структурой (struct) с полями x,y. Это уточнение несущественно, так как в C# структуры похожи на классы, a инициализация объекта-структуры point может выглядеть так же, как инициализация объекта-класса:
Point point= new Point();

Класс Pen (перо) используется для рисования линий и кривых, а классы, производные от класса Brush (кисть) используются для закраски замкнутых контуров (см. ниже).

Читать еще:  Powershell unauthorized access

Класс GraphicsPath позволяет задавать последовательность соединенных линий и кривых, класс Region описывает внутреннюю часть графической формы, состоящей из многоугольников и контуров.

Класс Image – абстрактный базовый класс предоставляет функциональные возможности для производных классов Bitmap и Metafile. Bitmap используется для работы с пиксельными изображениями (см. выше пример). Metafile определяет графический метафайл, содержащий записи, описывающие последовательность графических операций, которые могут быть записаны (созданы) и воспроизведены (отображается). Этот класс не наследуется.

Класс Graphics

Он инкапсулирует поверхность рисования GDI+. Этот класс не наследуется. Методов в этом классе огромное количество, поэтому сначала представим их в таблице, а затем рассмотрим некоторые из них с примерами и пояснениями.
В третьем столбце таблицы указывается число перегрузок метода, различающихся набором параметров (используйте интеллектуальную подсказку IntelliSense для выбора нужного Вам варианта метода).

10 лучших программ для рисования на компьютере

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

Бесплатные программы для рисования на компьютере

Krita

  • Платформы: Windows, macOS, Linux.

Krita — это настолько продвинутая и функциональная программа для рисования, что не верится, что перед тобой не коммерческий продукт, а разработка с открытым исходным кодом. В этом редакторе есть поддержка слоёв, огромное количество кистей и инструментов, куча самых разных фильтров и эффектов.

Krita может использоваться для создания цифровой живописи, скетчей, картин, комиксов и даже рисованной покадровой анимации. Интерфейс удобно настраивается. Плюс ко всему Krita отлично работает с графическими планшетами.

  • Платформы: Windows, macOS, Linux.

Мощный, гибкий, настраиваемый растровый редактор с открытым исходным кодом. Правда, интерфейс и горячие клавиши тут своеобразные — привыкшим к Photoshop художникам придётся переучиваться.

В GIMP есть большинство инструментов, доступных в Photoshop: слои, маски, цветокоррекция, умное выделение, кисти, фильтры и гора других возможностей. Часть отсутствующих можно прикрутить с помощью сторонних расширений.

Inkscape

  • Платформы: Windows, macOS, Linux.

А вот это уже инструмент для создания векторной графики — бесплатный и опенсорсный аналог Adobe Illustrator. Он хорошо подходит для создания логотипов, значков, веб-графики, векторных иллюстраций и прочих дизайнерских продуктов.

Inkscape содержит в себе всё для комфортного создания и редактирования векторных изображений: инструменты управления цветом и текстурами, слои, умное размещение и выравнивание объектов, а также возможность векторизировать растровые картинки.

Paint.NET

  • Платформы: Windows.

Это, конечно, не полноценный аналог Photoshop, а, скорее, старый добрый Paint на стероидах, но для любительского рисования и его хватит.

Именно благодаря своей простоте Paint.NET хорошо подходит для начинающих художников. Плюс ко всему он способен быстро работать даже на маломощных устройствах.

Paint.NET поддерживает работу со слоями и обладает большим количеством эффектов. Здесь есть инструменты для размытия, стилизации, повышения чёткости и подавления шума, а при желании возможности программы можно расширить при помощи плагинов.

MediBang Paint Pro

  • Платформы: Windows, macOS.

Это специализированный инструмент, который придётся по душе создателям комиксов, аниме и манги. Приложение очень лёгкое, быстрое и при этом абсолютно бесплатное. В библиотеке MediBang Paint Pro больше 800 предустановленных фонов и шаблонов аниме-тематики. Кроме того, здесь есть порядка 50 кистей и большой выбор бесплатных шрифтов.

Gravit Designer

  • Платформы: Windows, macOS, Linux, веб.

Gravit Designer — это довольно мощный и продвинутый, но при этом бесплатный редактор векторной графики. С его помощью можно легко создавать значки, логотипы, баннеры и прочие изображения. В приложении много инструментов: кривые, слои, формы, выделение и трансформация объектов, работа с текстом и шрифтами.

Помимо этого, в Gravit Designer есть встроенная библиотека векторных объектов, создаваемых пользователями. Их можно свободно задействовать в собственных работах. Ещё одна фишка приложения: при желании его можно запустить без установки, прямо в браузере через родной веб-сервис Gravit.

Платные программы для рисования на компьютере

Affinity Designer

  • Платформы: Windows, macOS.
  • Цена: ‎49,99 долларов.

Редактор впечатляет своими возможностями. Настраиваемые панели и комбинации клавиш, удобная система поворота холста, из-за которой кажется, что вы рисуете на настоящей бумаге, совместимость с графическими планшетами, эффекты теней, свечения, контура, скос — всего и не перечислить.

Affinity Designer определённо стоит попробовать тем, кто профессионально занимается графикой и дизайном и не хочет переплачивать за Photoshop.

BlackInk

  • Платформы: Windows.
  • Цена: 59,99 доллара.

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

Вместо традиционных подходов к созданию растровых изображений BlackInk использует свой механизм. Так называемый Controller открывает невиданные возможности настройки кистей. Освоить его нелегко, но результат впечатлит вас.

Adobe Photoshop

  • Платформы: Windows, macOS.
  • Цена: подписка от 644 рублей в месяц.

Photoshop — это фактически стандарт в мире компьютерной графики, самая популярная программа для художников, дизайнеров и фотографов. О возможностях Photoshop говорить смысла нет: если с изображением можно что-то сделать, то он это сделает.

Поскольку Photoshop является частью облачного сервиса Adobe Creative Cloud, вы легко можете пользоваться вашими кистями, цветами и стилями на всех устройствах — настройки синхронизируются буквально на лету. Вдобавок для Photoshop из-за его популярности создана просто куча плагинов.

Единственное, что с детищем Adobe не так, — цена на подписку. Впрочем, этого следовало ожидать, ведь Photoshop — это самый мощный и продвинутый из всех растровых редакторов на свете.

Corel Painter

  • Платформы: Windows, macOS.
  • Цена: 429 долларов.

У всех на слуху Corel Draw — мощнейший профессиональный редактор векторной графики. Но у Corel есть ещё одно детище — растровый редактор Corel Painter, прекрасно подходящий для рисования. В этом редакторе есть множество удобных инструментов для работы с цветом, синтезирования текстур и клонирования объектов, а также кисти, холсты и слои.

Читать еще:  Access комментарии в sql

Этот дорогой, но эффективный редактор для искушённых художников однозначно стоит своих денег.

Drawing Graphics in C Sharp

The purpose of this chapter of C# Essentials is to provide the reader with knowledge of the basics of graphics drawing in C#. Drawing in C# is achieved using the Graphics Object. The Graphics Object takes much of the pain out of graphics drawing by abstracting away all the problems of dealing with different display devices and screens resolutions. The C# programmer merely needs to create a Graphic Object and tell it what and where to draw.

Persistent Graphics

An important point to note before proceeding with is chapter is that simply creating a Graphics Object for a component and then drawing on that component does not create persistent graphics. In fact what will happen is that as soon as the window is minimized or obscured by another window the graphics will be erased.

For this reason, steps need to be taken to ensure that any graphics are persistent. Two mechanisms are available for achieving this. One is to repeatedly perform the drawing in the Paint() event handler of the control (which is triggered whenever the component needs to be redrawn), or to perform the drawing on a bitmap image in memory and then transfer that image to the component whenever the Paint() event is triggered. We will look at redrawing the graphics in the Paint() event in this chapter and Using Bitmaps for Persistent Graphics in C# in the next chapter.

Creating a Graphics Object

The first step in this tutorial is to create a new Visual Studio project called CSharpGraphics. With the new project created select the Form in the design area and click on the lightning bolt at the top of the Properties panel to list the events available for the Form. Double click the Paint event to display the code editing page.

Graphics Objects are created by calling the CreateGraphics() method of the component on which the drawing is to performed. For example, a Graphics Object can be created on our Form called Form1 by calling CreateGraphics() method as follows in the Paint() method:

Now that we have a Graphic Object we need a Pen with which to draw.

Creating a Pen In C#

A Graphics Object is of little use without a Pen object with which to draw (much as a sheet of paper is no good without a pen or pencil). A Pen object may be quite easily created as follows:

Pen variable_name = new Pen (color, width);

where variable_name is the name to be assigned to the Pen object, color is the color of the pen and width is the width of the lines to be drawn by the pen.

For example, we can create red pen that is 5 pixels wide as follows:

Once a Pen object has been created other properties may be changed. For example, the DashStyle property can be modified to change the style of line (i.e Dash, DashDot, DashDotDot, Dot, Solid or Custom). Properties such as the color and width may similarly be changed after a Pen has been created:

Now that we have a Paint() event handler, a Graphics Object and Pen we can now begin to draw.

Drawing Lines in C#

Lines are drawn in C# using the DrawLine() method of the Graphics Object. This method takes a pre-instantiated Pen object and two sets of x and y co-ordinates (the start and end points of the line) as arguments. For example, to draw a line from co-ordinates (20, 20) to (200, 210) on our sample form:

The above code, when compiled and executed will result in the form appearing as follows:

Drawing Squares and Rectangles in C#

For the purposes of drawing rectangles and squares in C# the GraphicsObject provides the DrawRectangle() method. There are two ways to use the DrawRectangle() method. One is to pass through a Rectangle object and Pen and the other is to create an instance of a Rectangle object and pass that through along with the Pen. We will begin by looking at drawing a rectangle without a pre-created Rectangle object. The syntax for this is:

The alternative is to pass through a Rectangle object in place of the co-ordinates and dimensions. The syntax for creating a Rectangle object in C# is as follows:

Rectangle rectangleObj = new Rectangle (x, y, width, height);

Once a Rectangle object has been instantiated the syntax to call DrawRectangle() is as follows:

The following example creates a Rectangle which is then used as an argument to DrawRectangle():

When an application containing the above code is compiled and executed the following graphics will appear in the form:

If multiple rectangles of different shapes need to be drawn it is not necessary to create a new Rectangle object for each call to the DrawRectangle(); method. Instead the shape of an existing Rectangle object may be altered by calling the Inflate() method of the Rectangle class. This method accepts two arguments, the amount by which the width is to be changed and the amount by which the height is to be changed. If a dimension is to be left unchanged 0 should be passed through as the change value.

To reduce a dimension pass through the negative amount by which the dimension is to be changed:

Читать еще:  Как удалить таблицу в access

Drawing Ellipses and Circles in C#

Ellipses and circles are drawn in C# using the DrawEllipse() method of the GraphicsObject class. The size of the shape to be drawn is defined by specifying a rectangle into which the shape must fit. As with the DrawRectangle() method, there are two ways to use the DrawEllipse() method. One is to pass through a Rectangle object and Pen and the other is to create an instance of a Rectangle object and pass that through along with the Pen.

To draw an ellipse without first creating a Rectangle object use the following syntax:

The alternative is to pass through a Rectangle object in place of the co-ordinates and dimensions. The syntax for creating a Rectangle object in C# is as follows:

Rectangle rectangleObj = new Rectangle (x, y, width, height);

Once a Rectangle object has been instantiated the syntax to call DrawRectangle() is as follows:

The following example creates a Rectangle which is then used as an argument to DrawEllipse():

When compiled and executed the above code creates the following graphics output on the form:

Drawing Text with C#

Text is drawn onto a Graphics Object using the DrawText() method. The syntax for this method is as follows:

The string argument specifies the text to be drawn. Font defines the font to be used to display the text and requires the creation of a Font object. The brush object is similar to the Pen object used to draw shapes with the exception that it specifies a fill pattern. Finally, the x and y values specify the top left hand corner of the text.

In order to create a Font object a font size, font family and font style may be specified. For example to create a Helvetica, 40 point Italic font:

A brush object is created by specifying by calling the appropriate constructor for the brush type and specifying a color:

Having created the necessary objects we can incorporate these into our example C# application to draw some text:

The above code, when compiled and run, will output the following text onto the form:

draw point

1 draw point

2 draw point

3 draw point

4 draw point

5 draw-off point

Англо-русский строительный словарь. — М.: Русский Язык . С.Н.Корчемкина, С.К.Кашкина, С.В.Курбатова . 1995 .

6 draw-off point

7 draw-off point

8 draw-off point

9 draw-off point

10 draw-off point

11 пункт выпуска

См. также в других словарях:

draw — (dr[add]), v. t. [imp. (dr[udd]); p. p. (dr[add]n); p. pr. & vb. n. .] [OE. dra[yogh]en, drahen, draien, drawen, AS. dragan; akin to Icel. & Sw. draga, Dan. drage to draw, carry, and prob. to OS. dragan to bear, carry, D.… … The Collaborative International Dictionary of English

Draw — Draw, draws or drawn may refer to: The act of drawing, or making an image with a writing utensil A part of many card games A part of a lottery Wire drawing Draw (terrain), terrain feature similar to a valley (but smaller) formed by two parallel… … Wikipedia

draw — ► VERB (past drew; past part. drawn) 1) produce (a picture or diagram) by making lines and marks on paper. 2) produce (a line) on a surface. 3) pull or drag (a vehicle) so as to make it follow behind. 4) pull or move in a specified direction. 5)… … English terms dictionary

draw — drȯ vb, drew drü drawn drȯn draw·ing vt 1) to cause to move toward or localize in a surface <using a poultice to draw inflammation to a head> esp to cause (an unwanted element) to depart (as from the body or a lesion) <this will help… … Medical dictionary

Draw the Line — may refer to; Draw the Line (Aerosmith album) Draw the Line (song) Draw the Line (David Gray album) This disambiguation page lists articles associated with the same title. If an … Wikipedia

Draw by agreement — In chess, a draw by (mutual) agreement is the outcome of a game due to the agreement of both players to a draw. A player may offer a draw to his opponent at any stage of a game; if the opponent accepts, the game is a draw. The relevant portion of … Wikipedia

Draw (chess) — In chess, a draw is when a game ends in a tie. It is one of the possible outcomes of a game, along with a win for White (loss for Black) and a win for Black (loss for White). Usually, in tournaments a draw is worth a half point to each player,… … Wikipedia

draw — draw1 W1S1 [dro: US dro:] v past tense drew [dru:] past participle drawn [dro:n US dro:n] ▬▬▬▬▬▬▬ 1¦(picture)¦ 2 draw (somebody s) attention 3 draw a conclusion 4 draw a comparison/parallel/distinction etc 5¦(get a reaction)¦ 6¦(attract)¦ 7¦(get… … Dictionary of contemporary English

draw — drawable, adj. /draw/, v., drew, drawn, drawing, n. v.t. 1. to cause to move in a particular direction by or as if by a pulling force; pull; drag (often fol. by along, away, in, out, or off). 2 … Universalium

draw — verb (past drew; past participle drawn) 1》 produce (a picture or diagram) by making lines and marks on paper. ↘trace or produce (a line) on a surface. 2》 pull or drag (a vehicle) so as to make it follow behind. ↘pull or move (something)… … English new terms dictionary

Draw play — A draw play, or simply draw for short, is a type of American football play. The draw appears to be a passing play, but is actually a running play; in this way, it can be considered the opposite of the play action pass. The idea behind a draw play … Wikipedia

Ссылка на основную публикацию
Adblock
detector