Форум программистов, компьютерный форум, киберфорум
C++/CLI Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
2 / 2 / 5
Регистрация: 19.10.2013
Сообщений: 75

Неоднозначный вызов метода DrawLine

11.05.2014, 17:12. Показов 2050. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Реализация изолиний, для трубы по которой бежит вода, и подогревается сверху.
Возникла проблема с самой графикой.
Ругается на перегрузку. Всего 11 ошибок, и все на дровлайн.
C++
1
Error   1   error C2668: 'System::Drawing::Graphics::DrawLine' : ambiguous call to overloaded function  c:\users\admin\desktop\труба\труба\Form1.h    472
Прошу помощи опытных людей)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
double Izolines()
{/*Начало*/
    Bitmap^ image1 = gcnew Bitmap (380,380);
    Graphics^ ng = Graphics::FromImage(image1);
    Pen^ pn = gcnew Pen(Color::DarkRed, 1.0f);//Новый карандаш с толщиной 1
    double dz=50.0, dr=50.0;
  for(int k = 0; k < 10; k++ )
  {/*осн.нач.*/
    for (int i = 2; i < m-1; i++)
     for( int j = 1; j < n-1; j++)
        {/*for for begin*/
         if(T[i][j] >= q[k] && T[i+1][j] < q[k])
         {/*1-begin*/
         
          if (T[i][j+1] < q[k])
          {
               ng->DrawLine(pn, dr*(i-2)+ Math::Round(dr*(0.5+(q[k]-T[i][j])/(T[i+1][j]-T[i][j]))), 
               Math::Round(dz*(n-j-0.5)),   Math::Round(dr*(i-1.5)), 
               dz*(n-j)-Math::Round(dz*(0.5+(q[k]-T[i][j])/(T[i][j+1]-T[i][j]))));
          }
 
          if(T[i][j-1] < q[k])
          {
               ng->DrawLine(pn, dr*(i-2)+Math::Round(dr*(0.5+(q[k]-T[i][j])/(T[i+1][j]-T[i][j]))),
               Math::Round(dz*(n-j-0.5)),
               Math::Round(dr*(i-1.5)),
               dz*(n-j)+Math::Round(dz*(-0.5+(q[k]-T[i][j])/(T[i][j-1]-T[i][j]))));
          }
 
          if(T[i][j+1] >= q[k] && T[i+1][j+1] >= q[k])
          {
               ng->DrawLine(pn, dr*(i-2)+Math::Round(dr*(0.5+(q[k]-T[i][j])/(T[i+1][j]-T[i][j]))),
               Math::Round(dz*(n-j-0.5)),
               Math::Round(dr*(i-0.5)),
               dz*(n-j)-Math::Round(dz*(0.5+(q[k]-T[i+1][j])/(T[i+1][j+1]-T[i+1][j]))));
          }
 
          if(T[i][j-1] >= q[k] && T[i+1][j-1]>=q[k])
          {
               ng->DrawLine(pn, dr*(i-2)+Math::Round(dr*(0.5+(q[k]-T[i][j])/(T[i+1][j]-T[i][j]))),
               Math::Round(dz*(n-j-0.5)),
               Math::Round(dr*(i-0.5)),
               dz*(n-j)+Math::Round(dz*(-0.5+(q[k]-T[i+1][j])/(T[i+1][j-1]-T[i+1][j]))));
          }
 
          if(T[i][j+1] >= q[k] && T[i+1][j+1] < q[k])
          {
               ng->DrawLine(pn, dr*(i-2)+Math::Round(dr*(0.5+(q[k]-T[i][j])/(T[i+1][j]-T[i][j]))),
               Math::Round(dz*(n-j-0.5)),
               dr*(i-2)+Math::Round(dr*(0.5+(q[k]-T[i][j+1])/(T[i+1][j+1]-T[i][j+1]))),
               Math::Round(dz*(n-j-1.5)));
          }
        }/*1-end;*/
 
        if(T[i][j] < q[k] && T[i+1][j] >= q[k])
        {/*2-begin*/
              if( T[i+1][j+1] < q[k] )
              {
                   ng->DrawLine(pn, dr*(i-2)+Math::Round(dr*(0.5+(q[k]-T[i][j])/(T[i+1][j]-T[i][j]))),
                   Math::Round(dz*(n-j-0.5)),
                   Math::Round(dr*(i-0.5)),
                   dz*(n-j)-Math::Round(dz*(0.5+(q[k]-T[i+1][j])/(T[i+1][j+1]-T[i+1][j]))));
              }
 
              if( T[i+1][j-1] < q[k])
              {
                   ng->DrawLine(pn, dr*(i-2)+Math::Round(dr*(0.5+(q[k]-T[i][j])/(T[i+1][j]-T[i][j]))),
                   Math::Round(dz*(n-j-0.5)),
                   Math::Round(dr*(i-0.5)),
                   dz*(n-j)+Math::Round(dz*(-0.5+(q[k]-T[i+1][j])/(T[i+1][j-1]-T[i+1][j]))));
              }
 
              if( T[i][j+1] >= q[k] && T[i+1][j+1] >= q[k])
              {
                   ng->DrawLine(pn, dr*(i-2)+Math::Round(dr*(0.5+(q[k]-T[i][j])/(T[i+1][j]-T[i][j]))),
                   Math::Round(dz*(n-j-0.5)),
                   Math::Round(dr*(i-1.5)),
                   dz*(n-j)-Math::Round(dz*(0.5+(q[k]-T[i][j])/(T[i][j+1]-T[i][j]))));
              }
 
              if( T[i][j-1] >= q[k] && T[i+1][j-1]>= q[k])
              {
                   ng->DrawLine(pn, dr*(i-2)+Math::Round(dr*(0.5+(q[k]-T[i][j])/(T[i+1][j]-T[i][j]))),
                   Math::Round(dz*(n-j-0.5)),
                   Math::Round(dr*(i-1.5)),
                   dz*(n-j)+Math::Round(dz*(-0.5+(q[k]-T[i][j])/(T[i][j-1]-T[i][j]))));
              }
 
              if( T[i][j+1] < q[k] && T[i+1][j+1] >= q[k])
              {
                   ng->DrawLine(pn, dr*(i-2)+Math::Round(dr*(0.5+(q[k]-T[i][j])/(T[i+1][j]-T[i][j]))),
                   Math::Round(dz*(n-j-0.5)),
                   dr*(i-2)+Math::Round(dr*(0.5+(q[k]-T[i][j+1])/(T[i+1][j+1]-T[i][j+1]))),
                   Math::Round(dz*(n-j-1.5)));
              }
        }/*2-end;*/
 
      if( (((T[i][j]>=q[k]) && (T[i+1][j]>=q[k])) && ((T[i][j+1]<q[k]) && (T[i+1][j+1]<q[k]))) || (((T[i][j]<q[k]) && (T[i+1][j]<q[k])) &&   ((T[i][j+1]>=q[k]) && (T[i+1][j+1]>=q[k]))))
      {
           ng->DrawLine(pn, Math::Round(dr*(i-1.5)),
           dz*(n-j)-Math::Round(dz*(0.5+(q[k]-T[i][j])/(T[i][j+1]-T[i][j]))),
           Math::Round(dr*(i-0.5)),
           dz*(n-j)-Math::Round(dz*(0.5+(q[k]-T[i+1][j])/(T[i+1][j+1]-T[i+1][j]))));
      }
        }/*for for end;*/
 
 }/*осн.кон.*/
  pictureBox1->Image= image1;
}/*Конец*/
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.05.2014, 17:12
Ответы с готовыми решениями:

Вызов метода из другой формы
Доброго времени суток! Волею судеб пришлось осваивать VC++ 2008. Столкнулся с такой проблемой: Есть класс Form1 В нем объявлен...

Вызов метода класса Form1 в функции main()
Создаю приложение на Windows Forms. Есть класс Form1: namespace Server { public ref class Form1 : public...

Неоднозначный вызов конструктора
class Verylong{ public: Verylong (long x = 0) { enter(x);} Verylong (const Verylong&amp; vrl) : _sign(vrl._sign),...

2
Заблокирован
11.05.2014, 18:56
Может из-за Math::Round(), который возвращает не int. А DrawLine надо int.
Используйте вместо него Convert::ToInt32().
1
2 / 2 / 5
Регистрация: 19.10.2013
Сообщений: 75
11.05.2014, 22:41  [ТС]
Нет, конвертация не нужна. Здесь работа с вещественными числами. Проблема решена:

C++
1
2
3
4
5
6
if (T[i][j+1] < q[k])
          {
               ng->DrawLine(pn, dr*(i-2)+ (float)Math::Round(dr*(0.5+(q[k]-T[i][j])/(T[i+1][j]-T[i][j]))), 
               (float)Math::Round(dz*(n-j-0.5)),    (float)Math::Round(dr*(i-1.5)), 
               dz*(n-j)-(float)Math::Round(dz*(0.5+(q[k]-T[i][j])/(T[i][j+1]-T[i][j]))));
          }
закройте тему.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.05.2014, 22:41
Помогаю со студенческими работами здесь

Неоднозначный вызов перегруженной функции
Ошибка 1 error C2668: hash_helper::hash: неоднозначный вызов перегруженной функции...

Неоднозначный вызов методов и свойств (с#)
Ошибка CS0121 Неоднозначный вызов следующих методов или свойств: 'RelativeLayout.IRelativeList&lt;T&gt;.Add(T,...

Неоднозначный вызов перегруженной функции
Ввести с клавиатуры число n. Динамически выделить память для массива целых чисел размером n. Заполнить массив данными с клавиатуры....

Неоднозначный вызов перегруженной функции
#include &quot;stdafx.h&quot; #include &lt;cstdlib&gt; #include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;Windows.h&gt; #include &lt;iomanip&gt; #include...

Pow: неоднозначный вызов перегруженной функции
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;conio.h&gt; #include &lt;string.h&gt; #define eps 10E-3 using...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru