Как построить рисунок

Рейтинг: -7Ответов: 4Опубликовано: 04.05.2015

Можете мне помочь с кодом для рисунка?

Я не могу его сделать. Понимаю, что по координатам надо строить, но у меня не получается. На с# или с++.

рисунок

Ответы

▲ 5

Всё очень просто:

using System.Drawing;
using System.IO;
using System.Net;
using System.Windows.Forms;

class Program
{
    static void Main ()
    {
        new Form {
            Controls = {
                new PictureBox {
                    Image = Image.FromStream(new MemoryStream(
                        new WebClient().DownloadData("https://i.sstatic.net/XAUao.png"))),
                    AutoSize = true,
                }
            },
            AutoSize = true,
        }.ShowDialog();
    }
}
▲ 4

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

<Window x:Class="BlendApp.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Height="838" Width="1215">
    <Grid>
        <Path Data="
            M253.5,145 C253.5,172.89038 229.99495,195.5 201,195.5 C172.00505,195.5
            148.5,172.89038 148.5,145 C148.5,117.10962 172.00505,94.5 201,94.5
            C229.99495,94.5 253.5,117.10962 253.5,145 z M200.5,196.5 L200.5,421.50202
            M200.5,237.5 L272.5,305.5 M200.5,237.5 L126.5,306.5 M200.5,422.50199
            L273.5,560.5 M200.5,422.50199 L126.5,561.5 M46.5,561.5 L357.5,562.5
            M125.5,592.5 C125.5,609.62083 111.62083,623.5 94.5,623.5 C77.379173,623.5
            63.5,609.62083 63.5,592.5 C63.5,575.37917 77.379173,561.5 94.5,561.5
            C111.62083,561.5 125.5,575.37917 125.5,592.5 z M336.5,592.5 C336.5,609.62083
            322.62083,623.5 305.5,623.5 C288.37917,623.5 274.5,609.62083 274.5,592.5
            C274.5,575.37917 288.37917,561.5 305.5,561.5 C322.62083,561.5 336.5,575.37917
            336.5,592.5 z M0.5,624.5 L1094.5,624.5 M947.5,0.5 L1024.5,0.5 L1024.5,623.5
            L947.5,623.5 z M946.5,94.5 L836,151 945,205 z M946.5,211 L836,267.5
            945,321.5 z M946.5,322.5 L836,379 945,433 z M946.5,434 L836,490.5 945,544.5 z"
            HorizontalAlignment="Left" Height="625" Margin="37,138,0,0" Stretch="Fill"
            Stroke="Black" VerticalAlignment="Top" Width="1095"/>
    </Grid>
</Window>
▲ 4

Эх вы! Всё вам новые технологии!

Вот вам на старом добром C++.

vector<string> data =
{
    "                                         /||",
    "                                        / ||",
    "                                        \\ ||",
    "                                         \\||",
    "                                          ||",
    "           _                             /||",
    "          / \\                           / ||",
    "          \\_/                           \\ ||",
    "           |                             \\||",
    "          /|\\                             ||",
    "         / | \\                           /||",
    "        /  |  \\                         / ||",
    "          / \\                           \\ ||",
    "         /   \\                           \\||",
    "        /     \\                          /||",
    "   \\_________________/                  / ||",
    "      / \\      / \\                      \\ ||",
    "      \\_/      \\_/                       \\||",
    "------------------------------------------------"
};

for (auto& s : data)
    cout << s << endl;

http://ideone.com/8KH7lb

PS: Для любителей современных версий: http://ideone.com/DxlHkC (спасибо @Abyx за подсказку).

▲ 2

Поучаствую-ка и я в специальной олимпиаде.

Вот решение на WPF, мне оно кажется проще:

using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;

class App : Application
{
    [STAThread]
    public static void Main()
    {
        new App().Run();
    }

    protected override void OnStartup(StartupEventArgs e)
    {
        base.OnStartup(e);
        new Window()
        {
            Content = new Image()
            {
                Source = (ImageSource)new ImageSourceConverter()
                            .ConvertFromString("https://i.sstatic.net/XAUao.png")
            }
        }.Show();
    }
}