Форум программистов, компьютерный форум CyberForum.ru

Определение трассы пути движения точки на плоскости - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вычислить: аргумент, сумму, функцию http://www.cyberforum.ru/cpp-beginners/thread39747.html
Составить программу вычисления значений: а) аргумента; б) приближенного значения суммы; в) функции в(х). Вычисление проводить на отрезке со свободным параметром М. Сумма: Функция:
C++ Вывести матрицу по образцую (Почините программу, делов на 5 сек) Матрица должна выходить по такому образцу: .1....2...3......7....8....9....10 11..12..13....17..18..19....20 21..22..24....27..28..29....30 ...................................... ...................................... 71..72..76....77..78..79....80 81..82..83....87..88..89....90 91..92..93....97..98..99..100 http://www.cyberforum.ru/cpp-beginners/thread39713.html
C++ Стили оформления кода C/C++
Очень стало любопытно... Какой стиль оформления кода предпочитают программисты. Лично я придерживаюсь 4-х пробельные (или 1 табулированный) стиль Олмана. Стиль Олмана if (<cond>) { ········<body> }
библиотека olena C++
Кто-то ставил/пользуется библиотекой olena-1.0 (мат. функции)? Я пытаюсь поставить (по интсрукции, которая прилагается), на стадии конфигурации компилятор (G++) говорит cannot find input file milena/doc/ref_guide/Makefile.in :(, инсталлироваться потом ничего не хочет. Может, кто-то посоветует другую библиотеку, где реализованы алгоритмы математической морфологии (сегментация изображения)?
C++ ошибка кода http://www.cyberforum.ru/cpp-beginners/thread39413.html
подскажите что в этой записи не правильно void vopros (); { h=h+1; switch (h) { case 1 : Label1->Caption=" Åñòü ëè ó Âàñ õîááè, íà êîòîðîå óõîäèòü ñóùåñòâåííàÿ ÷àñòü âàøèõ äîõîäîâ?" "À) Íå õî÷ó òðàòèòü äåíüãè íà âñÿêóþ åðóíäó!" "Á) Ó ìåíÿ íåò íà íèõ ëèøíèõ äåíåã." "Â) Äà, åñòü. À ÷òî äîðîãî – íè÷åãî íå ïîäåëàåøü, õîááè åñòü õîááè";
C++ Как удалить часть файла? Друзья как просто без промежуточного файла или переписывания в новый файл оставить в исходном файле нужный блок т.е. ИСХОДНЫЙ ФАЙЛ: размером (M + L + N) байтов - М байт - L байт - N байт Так вот как убрать блоки - ??? Я думаю что нуна memmove юзать, вообщем помогите, а? подробнее

Показать сообщение отдельно
Dima_1985
0 / 0 / 0
Регистрация: 12.06.2009
Сообщений: 3
13.06.2009, 19:12  [ТС]     Определение трассы пути движения точки на плоскости
вот более менее отлаженная программа:
Код
#include <iostream.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
#include <dos.h>
#include <stdio.h>
struct point
{float x,y;
};
struct koord
{
float xu;
float yu;
float xd;
float yd;
};

void main()
{
 clrscr();
 float y,x, s, k, l;
 s=1;
 int i=0,j=0;
 struct koord kv[5][5];
  kv[0][0].yd=0;
  kv[0][0].xd=0;
  kv[0][0].yu=kv[0][0].yd+s;
  kv[0][0].xu=kv[0][0].xd+s;
    for(j=1;j<5;j++)
     {
      i=0;
      kv[i][j].xd=kv[i][j-1].xu;
      kv[i][j].xu=kv[i][j].xd+s;
      kv[i][j].yd=0;
      kv[i][j].yu=kv[i][j].yd+s;
     }


  for(i=1;i<5;i++)
  {
   
   for(j=1;j<5;j++)
     {
     
      kv[i][j].xd=kv[0][j].xd;
      kv[i][j].xu=kv[0][j].xu;
      kv[i][j].yd=kv[i-1][j].yu;
      kv[i][j].yu=kv[i][j].yd+s;
           
     }
   }


   struct point A,B;
       printf ("Vvedite koord A(x,y)\n");
    scanf ("%f%f",&A.x,&A.y);
       printf ("Vvedite koord B(x,y)\n");
    scanf ("%f%f",&B.x,&B.y);

  float xmin, xmax, ymin, ymax;


  if(A.x<B.x)
  {
    xmin=A.x;
    xmax=B.x;
  }
    else
    {
    xmin=B.x;
    xmax=A.x;
    }

	if(A.y<B.y)
	 {
	   ymin=A.y;
	   ymax=B.y;
	 }
	 else
	 {
	   ymin=B.y;
	   ymax=A.y;
	 }
for(i=0;i<5;i++)
		{


			for(j=0;j<5;j++)
			   {    if(xmin<kv[i][j].xu&&xmin>kv[i][j].xd&&ymin<kv[i][j].yu&&ymin>kv[i][j].yd)
			    printf("Kvadrat tochki A= %d  %d\n",i+1,j+1);
			     else
				  if(xmax<kv[i][j].xu&&xmax>kv[i][j].xd&&ymax<kv[i][j].yu&&ymax>kv[i][j].yd)
				    { printf ("Kvadrat tochki B= %d  %d\n",i+1,j+1);}}}

if(B.x!=A.x)
{
	l=(B.y-A.y)/(B.x-A.x);
	for(i=0;i<5;i++)
	{


		for(j=0;j<5;j++)
		{


			k=(kv[i][j].yu-kv[i][j].yd)/(kv[i][j].xu-kv[i][j].xd);
			if(k!=l||-k!=l)
				{
					x=(k*kv[i][j].xd-l*A.x+A.y-kv[i][j].yd)/(k-l);
					y=(((x-kv[i][j].xd)*(kv[i][j].yu-kv[i][j].yd))/(kv[i][j].xu-kv[i][j].xd))+kv[i][j].yd;
				if(x<xmax&&x>xmin&&y<ymax&&y>ymin&&x<kv[i][j].xu&&x>kv[i][j].xd&&y<kv[i][j].yu&&y>kv[i][j].yd)
				 {
					printf("Kvadrat %d  %d\n",i+1,j+1);
				 }
				else
				{
					x=(-k*kv[i][j].xu-l*A.x+A.y-kv[i][j].yd)/(-k-l);
					y=(((x-kv[i][j].xu)*(kv[i][j].yu-kv[i][j].yd))/(kv[i][j].xd-kv[i][j].xu))+kv[i][j].yd;
					if(x<xmax&&x>xmin&&y<ymax&&y>ymin&&x<kv[i][j].xu&&x>kv[i][j].xd&&y<kv[i][j].yu&&y>kv[i][j].yd)
					{
						printf("Kvadrat %d  %d\n",i+1,j+1);
					}
				}
			}
			else
			{
					printf("Kvadrat %d  %d\n",i+1,j+1);
			}
		}
	}
}
else
{
     for(i=0;i<5;i++)
     for(j=0;j<5;j++)
		    if(kv[i][j].xd<xmax&&kv[i][j].xu>xmin&&kv[i][j].yd<ymax&&kv[i][j].yu>ymin)
		    {
		    printf("Kvadrat %d  %d\n",i+1,j+1);}
}
     getch();

}
теперь надо исключить повторения в выводе квадрата и показать квадраты если прямая движется параллельно диагоналям квадрата.
 
Текущее время: 16:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru