Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Подсчёт изолиний


Автор: Karta 27.4.2011, 22:20
Доброго времени суток всем!
Я только начала разбираться с С#, пытаюсь реализовать программу с подсчётом изолиний, что не очень выходит, ошибки выдает, не знаючто исправлять то... Может кто нибудь подскажет? Буду оч благодарна....

Код


using System;
using System.Drawing;

namespace isoline
{
    internal class GraphicsImageGenerator
    {
        public GraphicsImageGenerator()
        {
            const double minXY = 0;
            const double maxXY = Math.PI * 2;
            const double e = 0.01;
            double intervalXY = maxXY - minXY;

            Bitmap = new Bitmap(400, 400);
            double[] levels = { -1, -0.75, -0.5, -0.25, 0, 0.25, 0.5, 0.75, 1 };

            for (int i = 0; i < Bitmap.Width; i++)
            {
                for (int j = 0; j < Bitmap.Height; j++)
                {
                    for (int k = 0; k < levels.Length; k++)
                    {
                        double x = minXY + intervalXY * i / Bitmap.Width;
                        double y = minXY + intervalXY * j / Bitmap.Height;
                        double zn = Z(x, y);
                        if (zn >= levels[k] - e && zn <= levels[k] + e)
                        {
                            var c = (int)(255 * Math.Abs(zn - levels[k]) / e);
                            Bitmap.SetPixel(i, Bitmap.Height - j - 1, Color.FromArgb(c, c, c));
                        }
                    }
                }
            }
        }

        public Bitmap Bitmap { get; private set; }

        private static double Z(double x, double y)
        {
            return Math.Sin(x) * Math.Cos(y);
        }
    }
}



Автор: ReFleX 27.4.2011, 22:26
Какие ошибки?

Автор: Karta 27.4.2011, 22:42
1. using System.Drawing; //имя типа или пространства имён "Drawing" отсутствует в пространстве имён system (пропущена ссылка на сборку?)
2.  Bitmap = new Bitmap(400, 400);//Bitmap является "свойство", но используется как "тип"
3.  Bitmap.SetPixel(i, Bitmap.Height - j - 1, Color.FromArgb(c, c, c));// элемент "Color" не существ. в текущем контексте

Автор: WarHog 27.4.2011, 23:20
Привет,

Цитата

1. using System.Drawing;

проверь наличие в референсах проекта сборки System.Drawing

Цитата

2.  Bitmap = new Bitmap(400, 400);

пропущен объявление переменной, должно быть что-то вроде
Код

Bitmap bitmap = new Bitmap(400, 400);


3-е после этого должно само уйти

Автор: ReFleX 27.4.2011, 23:23
Добавь в References библиотеку System.Drawing

Добавлено через 3 минуты и 35 секунд
Цитата(WarHog @  27.4.2011,  23:20 Найти цитируемый пост)
пропущен объявление переменной, должно быть что-то вроде

Переменная уже есть как public:

public Bitmap Bitmap { get; private set; }

Так что ничего объявлять не надо.

Автор: Karta 27.4.2011, 23:46
может мне эту строку  public Bitmap Bitmap { get; private set; } нужно поставить перед  Bitmap = new Bitmap(400, 400) ?
И второе: если нету System.Drawing, откуда его можно взять?

Автор: ReFleX 27.4.2011, 23:53
user posted image
user posted image

Автор: VSB 28.4.2011, 23:24
Karta, нужно не называть переменную именем класса

Автор: Karta 19.5.2011, 17:37
"Ошибка    1    Программа "C:\Documents and Settings\Администратор\Мои документы\Visual Studio 2005\Projects\isoline\isoline\obj\Debug\isoline.exe" не содержит статического метода "Main", подходящего для точки входа"

Этот класс непременно нужно добавить и что тогда он должен содержать?

Автор: ReFleX 19.5.2011, 18:04
Main() главный метод с которого всё запускается. Он должен быть!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)