|
6.2. Каркасная модель на языке C#
Рассмотрим структуру программы в C# для
построения проекции каркасной модели средствами базовой графики:
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
namespace g1511XXs1_FIO_WindowsApplication1
{
///
/// Summary description for Form1.
///
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Label label1;
private System.ComponentModel.IContainer components;
public Form1()
{
// Required for Windows Form Designer support
InitializeComponent();
// TODO: Add any constructor code after InitializeComponent call
}
///
/// Clean up any resources being used.
///
protected override void Dispose( bool disposing )
{
if( disposing ){ if (components != null){components.Dispose();} }
base.Dispose( disposing );
}
#region Windows Form Designer generated code
///
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
///
private void InitializeComponent()
{
// и так далее
// создается автоматически
}
#endregion
///
/// The main entry point for the application.
///
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
private void button1_Click(object sender, System.EventArgs e)
{
int x0,y0,i; x0=110;y0=110;
/* 1. Ввод значений исходных данных */
int n=14;
int[] xn={ 40, 0,20,40, 0,20,25,22,22,25,18,18,15,15};
// и далее по методичке yn, zn, xk, yk, zk
/* 2. Инициализация графики */
Graphics canvas= Graphics.FromHwnd(this.Handle);
// где canvas - любое свое имя идентификатора для указателя
float w0=2.0f; Pen pen=new Pen(Color.Red,w0);
// выбор пера (Pen) для рисования линии
SolidBrush b=new SolidBrush(Color.FromArgb(150,0,0,255));
// выбор кисти (Brush) для рисования текста
// и далее по методичке
/* 3. Вычерчивание рамки, осей координат, и вывод надписей*/
canvas.DrawRectangle(pen2,2,2,210,297);
// и так далее DrawLine
/* Обозначения осей координат и надписи*/
canvas.DrawString(" ось X",new Font("Areal",15),b,x0-70,y0+10);
// и так далее DrawString
/* 4. Основные циклы вычислений */
/* Основные циклы вычислений проекции XOY*/
for(i=0;i<n;i++)
{
canvas.DrawLine(pen,x0-xn[i],y0+yn[i],x0-xk[i],y0+yk[i]);
};
// и далее по методичке
// /* Основные циклы вычислений проекции XOZ*/
// /* Основные циклы вычислений проекции YOZ*/
// /* Основные циклы вычислений аксонометрической проекции*/
}
}
Результат работы представлен на рисунке:
<<ПРЕДЫДУЩАЯ
<<СОДЕРЖАНИЕ>>
СЛЕДУЮЩАЯ>>
|