Задать вопрос
  • Как найти все границы объектов, описанных попиксельно?

    @kttotto
    Да, уже загуглил) Я просто с усилием вспомнил что такое есть, почему то мне помнилось что в геодезии где-то это используется.
  • Как найти все границы объектов, описанных попиксельно?

    @kttotto
    Александр Скуснов, я не увидел там алгоритмов, там документация для инструмента, причем там свой синтаксис.

    Я не в курсе всех нюансов предпосылки задачи, но что-то мне кажется, что просто выбран не правильных подход. Человек хочет проверить предметы на столкновения, он забивает поле предметами и теперь все поле использует как один спрайт, начиная в нем искать контуры. Хотя логичнее за спрайт держать одну фигуру с заранее известными контурами, есть массив спрайтов, есть все контуры, которые не надо высчитывать.

    Конечно можно предположить, что поле он делает из фотки или что он делает бота, где заранее нет отдельных предметов, отдельных спрайтов. Но он определенно говорит, что поле бинарное и что там геометрические фигуры, фоток и чужих полей (чтоб хотелось для них бота делать) я таких не видел.

    Хотя он мог просто заморочиться задачкой)
  • Как создать массив или коллекцию объектов?

    @kttotto
    Сергей Хлопов,
    Вам удобнее будет использовать список массивов
    var list = new List<Array>();
    тогда добавление массива будет выглядеть
    list.Add(ArrayObject);
    List внутри тот же массив, только у него есть методы для автоматического изменения размера. А доступ к элементам можете получать так же по индексу.
  • Как найти все границы объектов, описанных попиксельно?

    @kttotto
    Ну Вы и не сказали, что один массив - одна фигура, Вы так же не сказали, фигуры залитые или могут быть полыми, не сказали, могут ли фигуры быть V образными, поэтому я догадывался из контекста вопроса.

    Большинство стандартных алгоритмов Вам дадут контуры, но не скажут, что это разные фигуры.

    В таком случае Вам надо искать разрывы между фигурами, не думаю, что искать разрывы по маске выйдет быстрее, чем обход всех пикселей, у вас не многоцветное изображение. И тогда все зависит от соотношения черного к белому, что будет быстрее. Если белого больше и фигуры небольшие, то найдя первый черный, можно получить всю фигуру и уже у нее искать крайние точки. Если же фигуры достаточно громоздкие для поля и они залитые, то обход фигуры будет долгий.

    Если фигуры залитые (а я предполагаю, что залитые, раз вы их получаете обходом пикселей), то можно искать разрывы, разделив поле на сектора, чтобы в каждом секторе осталось по фигуре. После этого можно взять крайние точки.

    И судя, что это препятствия, значит Вы хотите проверять на столкновение. Неужели в Вашем случае стандартные решения задач на столкновение не подходят? Почему такая растровая проверка?
  • C# - Как можно сравнить время(DateTime)?

    @kttotto
    Свойство TimeOfDay Возвращает структуру TimeSpan, это промежуток времени.
    Посмотрите ее методы свойства, там можно извлекать часы, минут, секунды и т.д.
  • C# - Как можно сравнить время(DateTime)?

    @kttotto
    Во втором варианте сравнения я написал как сравнить только время, без учета даты

    var timeFrom1 = new TimeSpan(11, 30, 0);
    var timeTo1 = new TimeSpan(12, 30, 0);

    var timeNow = DateTime.Now.TimeOfDay;
    if (timeNow > timeFrom1 && timeNow < timeTo1)
    {
    Console.WriteLine("between");
    }
    else
    {
    Console.WriteLine("not between");
    }
  • Как создать массив или коллекцию объектов?

    @kttotto
    Сергей Хлопов,
    И находить через цикл в коллекции тот объект, у которого есть имя как и у кнопки и возвращать его

    Если нужен доступ по ключу, то не нужно использовать цикл, посмотрите на Dictionary. Например:
    Dictionary<string, List<object>>
    И вам определенно нужен общий предок для объектов, в которых Вы будете хранить данные пропертей.
  • Как создать копию кнопки в C#?

    @kttotto
    Сергей Хлопов,
    Нет, кнопка это не класс. На кнопке тут просто события.

    Кнопка в формах, это экземпляр класса Button. Для того, чтоб создать новую кнопку, нет другого варианта, кроме как создать еще один экземпляр new Button(). Ну а скопировать кнопку, значит перенести все параметры с одного экземпляра на другой. Что Вы собственно и сделали.
    В общем при mouseDown на кнопку, поверх создаете копию и при движении мышки двигаете копию куда надо.
  • Как написать метод, который будет выполняться перед каждым другим методом?

    @kttotto
    Роман, Я в курсе как устроен Authorize) , я использую кастомные атрибуты в работе. Я действительно не расписал до мелочей, но все правильно - "присвоение только атрибута ничего не сделает". Я просто дал наводку с помощью чего можно решить эту задачу, с посылом на то, что дальше человек просто загуглит работу с атрибутами.

    Значит просто
    может мы не поняли друг друга
  • Как написать метод, который будет выполняться перед каждым другим методом?

    @kttotto
    Какой в них нет функциональности? ))

    Года три назад я решал подобную задачу, когда с помощью атрибутов я указывал как метод должен отработать. Как по Вашему работает атрибут Authorize? Все Permision?

    Конечно нужно руками код добавить, можно внутри класса рефлексией атрибуты проверять и их значения или какой то статический метод добавить. Если просто по выдачи объектов, то можно фабрику создать, которая будет атрибут проверять, прежде чем дать экземпляр. Вариантов куча как это использовать. Вы будете неделю искать готовые варианты, причитать, что такого функционала нет, городить огороды, чем просто самому написать 10 строк кода. И после этого сравните стоимость работы.
  • Обновление модального окна при его последующем открытии Modal Bootstrap?

    @kttotto
    Cloud47, ну так конечно. Вы каждый раз при клике добавляете новую
    $('.modal-header').after(modalOn);
    Вы ее один раз добавьте до всех кликов.

    И при закрытии окна форму нужно не скрывать
    $('.modal-form').css('display','none');
    А приводить в дефолтное состояние, очистить поля формы, тогда отпадет надобность вот в этом
    $('.modal-form').css('display','block');
  • Как написать метод, который будет выполняться перед каждым другим методом?

    @kttotto
    Это называется декоратор, в шарпе их нет.

    Что значит нет? Нет фабрики, нет билдера, нет интерпретатора? Все это решается стандартными решениями.
  • Почему unsafe код небезопасен и его редко используют в C#?

    @kttotto
    TheTalion, Вы не сказали во что хотите сериализовать. Вообще сериализовать можно все что угодно и во что угодно, просто определить свои правила сериализации. И в этом случае можно сделать тоже самое. Вот пример

    Вот еще вариант
    // Сериализация
    			var document = new XElement(
    				"items",
    				dictionary.Select(x => new XElement("item", new XAttribute("id", x.Key), new XAttribute("value", x.Value)))
    			);
    			var xml = document.ToString();
    			Console.WriteLine(xml);
    
    			// Десериализация
    			var document2 = XElement.Parse(xml);
    			var obj = document2.Descendants("item")
    				.ToDictionary(x => (int)x.Attribute("id"), x => (string)x.Attribute("value"));
  • Почему unsafe код небезопасен и его редко используют в C#?

    @kttotto
    TheTalion, в примере это класс, поэтому его надо создать, либо сделать его статическим, чтоб не создавать каждый раз. Словарь сериализуется замечательно. Если будете передавать как параметр сам объект, то использовать ref не будет иметь смысла, ref нужен только для значимых типов.
  • Почему unsafe код небезопасен и его редко используют в C#?

    @kttotto
    Переписал Ваш пример как положено в C# )

    public class Storage
    	{
    		public int First = 0;
    	}
    
    	public class Routine
    	{
    		public void Inc(ref int value)
    		{
    			value++;
    		}
    	}

    И вызов:
    var storage = new Storage();
    var routine = new Routine();
    routine.Inc(ref storage.First);
    Console.WriteLine(storage.First);
  • Почему unsafe код небезопасен и его редко используют в C#?

    @kttotto
    Если Вы хотите получать доступ к значению по смещению, то это однозначно структура данных - массив. Заведите массив, будет доступ по индексу, передавайте индекс. Если Вам важны имена этих переменных, заведите Dictionary и кроме индекса, сможете еще и по ключу обращаться или получать значение по ключу.

    Inc(ref Storage.first);
    Console.PrintString(Storage.first.ToString());//тут будет 1?

    Если правильно написать код - да, там будет 1.

    Вам нужно сначала создать объект
    var storege = new Storage;
    затем поле того объекта передать в Inc()
    Inc(ref sorage.fist);
  • Boostrap скрипты во вкладках и слайдере прогружаются в последнюю очередь?

    @kttotto
    Слайдеры не будут работать пока js будет падать. Ошибка с animate вылазит?
  • Несколько элементов в ячейке БД ASP.NET?

    @kttotto
    Максим, зачем Вам [FormatKey]? Если Вы хотели указать ключи, то Вам нужно было указать [Key] и [ForeignKey].
    Не совсем понятен вопрос по поводу "как достать свойства навигации"... Вы сначала делаете БД, а потом хотите брать данные от туда? Для этого есть ADO.NET или Entity Framework. Я привел пример для Entity. Если Вы используете его, то все данные будут через эти модели. Вы так и не сказали с какой технологией Вы работаете. Вы показываете только схемы бд и ни строчки кода. Как Вы мапите данные на код? Как мы можем что-то внятное сказать из этих данных?
  • Почему не выполняется второй запрос C# + xNet?

    @kttotto
    эта строка не работает

    Это не самая развернутая информация. Что именно происходит: эксепшн (какой), пустой контент, ответ 400, 500, ... ?