public static void LinhaTest(bool on, int[,,] arrayPainelOriginal, int origX, int origY) { Console.WriteLine("X e Y para o ponto A"); int firstInt = int.Parse(Console.ReadLine()); int secondInt = int.Parse(Console.ReadLine()); Console.WriteLine("X e Y para o ponto B"); int thirdInt = int.Parse(Console.ReadLine()); int lastInt = int.Parse(Console.ReadLine()); PairOrdenated pointOne = new PairOrdenated(firstInt, secondInt); PairOrdenated pointTwo = new PairOrdenated(thirdInt, lastInt); PairOrdenated[] arrayLinha = Linha(pointOne, pointTwo); int[,,] arrayPainel = arrayPainelOriginal; Console.WriteLine(); Console.BackgroundColor = ConsoleColor.Black; Console.Write("Se você quer desligar escreva "); Console.BackgroundColor = ConsoleColor.Magenta; Console.WriteLine("off"); Console.BackgroundColor = ConsoleColor.Black; if (Console.ReadLine() == "off") { on = false; } Console.Clear(); }
//public void ColisionMesh(int[,,] arrayObjectApearenceArray) //{ // arrayColisionMesh = Program.MeshCreator(arrayObjectApearenceArray); !!!!CONSERTAR!!! //} public static void Transform(Object ObjectOfInntersector, Object ObjectOfIntersected) { PairOrdenated pairTransform = Program.WillInstersect(ObjectOfInntersector, ObjectOfIntersected); ObjectOfInntersector.pairSpeed = pairTransform.Subtract(pairTransform, ObjectOfInntersector.pairPosition); ObjectOfInntersector.pairPosition.Add(ObjectOfInntersector.pairSpeed); }
public void ConsoleImageProjector(ImageBuffer imageBufferInQuestion) { PairOrdenated[] arrayOfpairs = new PairOrdenated[imageBufferInQuestion.dictionaryImageBuffer.Count]; imageBufferInQuestion.dictionaryImageBuffer.Keys.CopyTo(arrayOfpairs, 0); for (int n = 0; n < arrayOfpairs.GetLength(0); n++) { ConsoleProjector(arrayOfpairs[n], imageBufferInQuestion.dictionaryImageBuffer[arrayOfpairs[n]]); } }
public void ImageBuffering(ImageBuffer imageBufferInQuestion, ObjectDictionary objectDictionaryInQuestion) { List <Object>[] arrayOfLists = new List <Object> [objectDictionaryInQuestion.dictionaryOfDynamicObjects.Values.Count]; objectDictionaryInQuestion.dictionaryOfDynamicObjects.Values.CopyTo(arrayOfLists, 0); for (int n = 0; n < arrayOfLists.Length; n++) { for (int m = 0; m < arrayOfLists[n].Count; m++) { PairOrdenated[] arrayOfPairs = new PairOrdenated[arrayOfLists[n][m].arrayApearance.Count]; arrayOfLists[n][m].arrayApearance.Keys.CopyTo(arrayOfPairs, 0); for (int k = 0; k < arrayOfPairs.Length; k++) { imageBufferInQuestion.dictionaryImageBuffer[arrayOfPairs[k].Add(arrayOfPairs[k], arrayOfLists[n][m].pairPosition)] = arrayOfLists[n][m].arrayApearance[arrayOfPairs[k]]; } } } }
public static int[,] MeshCreator(int[,,] arrayObject) { Dictionary <int, List <int> > dictionaryObjectInicial = new Dictionary <int, List <int> >(); int intSizeOfObjectInicial = 0; for (int x = 1; x < arrayObject.GetLength(0); x++) { for (int z = 1; z < arrayObject.GetLength(2); z++) { PairOrdenated pairPointA = new PairOrdenated(arrayObject[x, 0, z], arrayObject[x, 1, z]); PairOrdenated pairPointB = new PairOrdenated(arrayObject[x - 1, 0, z - 1], arrayObject[x - 1, 1, z - 1]); PairOrdenated[] arrayLinha = Linha(pairPointA, pairPointB); for (int n = 0; n < arrayLinha.GetLength(0); n++) { if (!(dictionaryObjectInicial[arrayLinha[n].intX].Contains(arrayLinha[n].intY) || arrayLinha == null)) { dictionaryObjectInicial[arrayLinha[n].intX].Add(arrayLinha[n].intY); intSizeOfObjectInicial++; } } } } int[,] arrayFinal = new int[intSizeOfObjectInicial, 2]; int intArrayFinalIndex = 0; foreach (int n in dictionaryObjectInicial.Keys) { foreach (int m in dictionaryObjectInicial[n]) { arrayFinal[intArrayFinalIndex, 0] = n; arrayFinal[intArrayFinalIndex, 1] = m; intArrayFinalIndex++; } } return(arrayFinal); }
public static PairOrdenated[] Linha(PairOrdenated pointBegining, PairOrdenated pointEnd) { PairOrdenated pairPointA = new PairOrdenated(); PairOrdenated pairPointB = new PairOrdenated(); if (pointBegining.intX >= pointEnd.intX) { pairPointA.intX = pointBegining.intX; pairPointB.intX = pointEnd.intX; } else { pairPointA.intX = pointEnd.intX; pairPointB.intX = pointBegining.intX; } if (pointBegining.intY >= pointEnd.intY) { pairPointA.intY = pointBegining.intY; pairPointB.intY = pointEnd.intY; } else { pairPointA.intY = pointEnd.intY; pairPointB.intY = pointBegining.intY; } int intX = pairPointA.intX - pairPointB.intX; // distancia entre os dois pontos no x int intXZero = pairPointB.intX; // ponto mais perto do 0 no x int intXIsNegative = 1; int intY = pairPointA.intY - pairPointB.intY; int intYZero = pairPointB.intY;// ponto mais perto do 0 no y int intYIsNegative = 1; if (intX < 0) { intXIsNegative = 1; } if (intY < 0) { intYIsNegative = -1; } int intMaior; int intMaiorZero; int intMaiorIsNegative; bool boolIsXAndYInverted; int intMenor; int intMenorZero; int intMenorIsNegative; if (intX >= intY) { intMaior = intX; intMaiorZero = intXZero; intMaiorIsNegative = intXIsNegative; boolIsXAndYInverted = false; intMenor = intY; intMenorZero = intYZero; intMenorIsNegative = intYIsNegative; } else { intMaior = intY; intMaiorZero = intYZero; intMaiorIsNegative = intYIsNegative; boolIsXAndYInverted = true; intMenor = intX; intMenorZero = intXZero; intMenorIsNegative = intXIsNegative; } int[] arrayMaior = new int[intMaior * intMaiorIsNegative + 1]; int[] arrayMenor = new int[intMaior * intMaiorIsNegative + 1]; for (int n = 0; n < arrayMaior.Count(); n++) { arrayMaior[n] = intMaiorZero + n; } int valorInicial = 0; int vezesQueValoraraConst; int vezesQueValorara; int atrasoDoIntMenor; if (intMenor == 0) { vezesQueValoraraConst = arrayMenor.Count(); atrasoDoIntMenor = 0; } else { vezesQueValoraraConst = arrayMenor.Count() / intMenor * intMenorIsNegative; atrasoDoIntMenor = arrayMenor.Count() % intMenor * intMenorIsNegative; } vezesQueValorara = vezesQueValoraraConst; for (int n = 0; n < arrayMenor.Count(); n++) { if (n == intMenor - atrasoDoIntMenor) { vezesQueValoraraConst++; vezesQueValorara++; } if (vezesQueValorara > 0) { vezesQueValorara--; } else { valorInicial++; vezesQueValorara = vezesQueValoraraConst; vezesQueValorara--; } arrayMenor[n] = intMenorZero + valorInicial; } int[] arrayOfX = arrayMaior; int[] arrayOfY = arrayMenor; if (boolIsXAndYInverted) { arrayOfX = arrayMenor; arrayOfY = arrayMaior; } PairOrdenated[] arrayReturned = new PairOrdenated[intMaior + 1]; for (int n = 0; n < arrayOfX.Count(); n++) { if (intXIsNegative == -1) { arrayReturned[n] = new PairOrdenated(arrayOfX[arrayOfX.Count() - n - 1], 0); } else { arrayReturned[n] = new PairOrdenated(arrayOfX[n], 0); } } for (int n = 0; n < arrayOfY.Count(); n++) { if (intYIsNegative == -1) { arrayReturned[n].intY = arrayOfY[arrayOfY.Count() - n - 1]; } else { arrayReturned[n].intY = arrayOfY[n]; } } return(arrayReturned); }
public void ConsoleProjector(PairOrdenated pairOrdenation, int intColor, char charDraw = ' ') { Console.SetCursorPosition(pairOrdenation.intX, pairOrdenation.intY); Console.BackgroundColor = (ConsoleColor)(intColor % 16); Console.WriteLine(charDraw.ToString()); }
public PairOrdenated Subtract(PairOrdenated pairordenatedA, PairOrdenated pairordenatedB) //A-B { return(new PairOrdenated(pairordenatedA.intX - pairordenatedB.intX, pairordenatedA.intY - pairordenatedB.intY)); }
public void Subtract(PairOrdenated pairordenatedB)//A-B { intX -= pairordenatedB.intX; intY -= pairordenatedB.intY; }
public PairOrdenated Add(PairOrdenated pairordenatedA, PairOrdenated pairordenatedB) { return(new PairOrdenated(pairordenatedA.intX + pairordenatedB.intX, pairordenatedA.intY + pairordenatedB.intY));; }
public void Add(PairOrdenated pairordenatedB) { intX += pairordenatedB.intX; intY += pairordenatedB.intY; }
public bool Equal(PairOrdenated pairordenatedB) { return(intX == pairordenatedB.intX && intY == pairordenatedB.intY); }