Как построить рисунок
Можете мне помочь с кодом для рисунка?
Я не могу его сделать. Понимаю, что по координатам надо строить, но у меня не получается. На с# или с++.
Источник: Stack Overflow на русском
Можете мне помочь с кодом для рисунка?
Я не могу его сделать. Понимаю, что по координатам надо строить, но у меня не получается. На с# или с++.
Всё очень просто:
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();
}
}
Пожалуй, добавлю полноценное решение с честной отрисовкой векторного изображения.
<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>
Эх вы! Всё вам новые технологии!
Вот вам на старом добром C++.
vector<string> data =
{
" /||",
" / ||",
" \\ ||",
" \\||",
" ||",
" _ /||",
" / \\ / ||",
" \\_/ \\ ||",
" | \\||",
" /|\\ ||",
" / | \\ /||",
" / | \\ / ||",
" / \\ \\ ||",
" / \\ \\||",
" / \\ /||",
" \\_________________/ / ||",
" / \\ / \\ \\ ||",
" \\_/ \\_/ \\||",
"------------------------------------------------"
};
for (auto& s : data)
cout << s << endl;
PS: Для любителей современных версий: http://ideone.com/DxlHkC (спасибо @Abyx за подсказку).
Поучаствую-ка и я в специальной олимпиаде.
Вот решение на 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();
}
}