Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.03.2015, 21:36   #1
Denis_Mishin
Новичок
Джуниор
 
Регистрация: 15.03.2015
Сообщений: 9
По умолчанию нужно int поменять на double

нужно dx и dy поменять на double и при рисовании конвертировать double в int подскажите пожалуйста как это зделать
Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication12
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void panel1_Paint(object sender, PaintEventArgs e)
        {
            const int x = 100, y = 100;
            int dx, dy;
            dx = (this.panel1.Width) / x;
            dy = (this.panel1.Height) / y;
            Graphics gPanel = panel1.CreateGraphics();

            Pen p = new Pen(Color.Black, 1);
            gPanel.Clear(Color.White);
            // gPanel.TranslateTransform(0, panel1.Height * 0.75f);
            gPanel.DrawLine(p, new Point(55 * dx, 30 * dy), new Point(35 * dx, 20 * dy));
            gPanel.DrawLine(p, new Point(35 * dx, 20 * dy), new Point(65 * dx, 55 * dy));
            gPanel.DrawLine(p, new Point(65 * dx, 55 * dy), new Point(75 * dx, 45 * dy));
            gPanel.DrawLine(p, new Point(75 * dx, 45 * dy), new Point(90 * dx, 65 * dy));
            gPanel.DrawLine(p, new Point(90 * dx, 65 * dy), new Point(100 * dx, 40 * dy));
            //gPanel.DrawLine(p, new Point(77, 18), new Point(97, 38));
            //gPanel.DrawLine(p, new Point(97, 35), new Point(97, 62));
        }
        private void panel1_SizeChanged(object sender, EventArgs e)
        {
            panel1.Invalidate();
        }
    }
}

Последний раз редактировалось Stilet; 17.03.2015 в 21:42.
Denis_Mishin вне форума Ответить с цитированием
Старый 17.03.2015, 21:44   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Math.Round(), не?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.03.2015, 21:47   #3
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Конвертировать при рисовании не надо, там есть DrawLine принимающий PointF.

Код:
float dx = panel1.Width / (float) x;
Вместо каста можно x, y сделать float.


Кнопка для тега [CODE] тут
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 19.03.2015, 16:23   #4
Сеня#
 
Регистрация: 19.03.2015
Сообщений: 6
По умолчанию

int a;
a = Convert.ToDouble
попробуй так
Сеня# вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить из MySQL данные типа int, double и др. Mackey_ C/C++ Базы данных 7 05.04.2013 09:27
Проблема с преобразоварнием double в int Theseus Общие вопросы C/C++ 2 17.08.2012 15:16
int mass to double Alex_sim Общие вопросы .NET 9 08.05.2010 16:25
округливание в C#( double to int) Natok Помощь студентам 1 25.05.2009 22:58
преобразование int в double Си++ t1empo Помощь студентам 11 27.04.2009 19:31