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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.12.2009, 20:17   #1
VirusOfLove
 
Аватар для VirusOfLove
 
Регистрация: 20.11.2009
Сообщений: 9
По умолчанию Прямая

Задача:
Нужно написать с помощью Циклов ну если не то хоть как то.

Пользователь задает кординаты 2-х точек: x,y,x1,y1.
нужно что б ыпровило прямую из *. От одной точи до другой
Зарание спс.
VirusOfLove вне форума Ответить с цитированием
Старый 03.12.2009, 23:01   #2
kitty19
Пользователь
 
Регистрация: 02.11.2009
Сообщений: 24
По умолчанию

Чем вам команда line(x,y,x1,y1) например не подходит?
kitty19 вне форума Ответить с цитированием
Старый 03.12.2009, 23:21   #3
notHaker
Форумчанин
 
Аватар для notHaker
 
Регистрация: 01.12.2009
Сообщений: 569
По умолчанию

Цитата:
Сообщение от VirusOfLove Посмотреть сообщение
Задача:
Нужно написать с помощью Циклов ну если не то хоть как то.

Пользователь задает кординаты 2-х точек: x,y,x1,y1.
нужно что б ыпровило прямую из *. От одной точи до другой
Зарание спс.
k := (y2 - y1) / (x2 - x1);
y = y1 + k * (x - x1);

так найдёшь y, если бежать циклом по x. если k < 1, то всё путём, а если k > 1 ,то x и y (все) меняешь ролями. ВСЁ!
Код - это работа, а работа стоит денег.

pz-game.ru. 2d зомби-сурвивал для олдфагов.
notHaker вне форума Ответить с цитированием
Старый 03.12.2009, 23:34   #4
Лубышев
Участник клуба
 
Аватар для Лубышев
 
Регистрация: 23.07.2007
Сообщений: 1,054
Радость

Как раз в этой проге эти же формулы используются но чуть чуть не так... там же и по x и по y надо... так что чуть чуть модернизированно, короче посмотри. тыкаешь на на экране и загарается точка, тыкаешь еще раз и между двумя точками рисуется таким методом линия... короче в проге реализовано построение ломаной
(и еще по поводу формул... если получается ноль в деление то лучше заменить его на 1 ото прога выдаст ошибку)
Вложения
Тип файла: zip NewScreenServer.zip (199.2 Кб, 12 просмотров)
Писано по д'Эльфийски
Лубышев вне форума Ответить с цитированием
Старый 03.12.2009, 23:47   #5
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

во-первых он не сказал на каком языке это надо сделать,
во-вторых он не сказал как это надо сделать( графика или консоль)
в-третьих то что вы ему предлагаете не удовлетворяет условию задачи =))

Цитата:
Пользователь задает кординаты 2-х точек: x,y,x1,y1.
нужно что б ыпровило прямую из *
может быть так. задаются координаты элементов матрицы матрицы(x,y,x1,y1) и через эти ячейки заполняются ячекйи символом *
по прямой

типо
Line(2,2,2,4)
Код:
0 0 0 0 0 0
0 * 0 0 0 0
0 * 0 0 0 0
0 * 0 0 0 0
0 0 0 0 0 0

Последний раз редактировалось NiCola999; 03.12.2009 в 23:52.
NiCola999 вне форума Ответить с цитированием
Старый 04.12.2009, 00:02   #6
Лубышев
Участник клуба
 
Аватар для Лубышев
 
Регистрация: 23.07.2007
Сообщений: 1,054
По умолчанию

в моей задаче это немного модернизированно... но какая разница ввести в окошки координаты точек или тыкнуть просто? это даже круче... а язык не проблема... на любом можно то же самое сделать...
Не удовлетворяет условиям? хм... как это не удовлетворяет? в основе тот же самый алгоритм.
ну пусть лишние навороты окинет и будет тоже самое
Писано по д'Эльфийски

Последний раз редактировалось Лубышев; 04.12.2009 в 00:04.
Лубышев вне форума Ответить с цитированием
Старый 04.12.2009, 00:42   #7
VirusOfLove
 
Аватар для VirusOfLove
 
Регистрация: 20.11.2009
Сообщений: 9
По умолчанию

написать нужно на С++ =)
задано 2 точки(их кординаты)
нужно вывести на этране Линию созданую ими.
VirusOfLove вне форума Ответить с цитированием
Старый 04.12.2009, 09:35   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

На плюсах говоришь...
Ну вот на Борланд С++
Код:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int ax=10,ay=10,x=200,y=50;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
	: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormPaint(TObject *Sender)
{
 Canvas->MoveTo(ax,ay);
 Canvas->LineTo(x,y);
}
//---------------------------------------------------------------------------
Это форма. Точки заданы жестко, но можешь расставить поля ввода.

Или тебе не отрезок а прямая нужна?
Тогда вот:
Код:
void __fastcall TForm1::FormPaint(TObject *Sender)
{
 double k=(float)abs(ay-y)/(float)abs(ax-x);
 Canvas->MoveTo(-100,k*-100);
 Canvas->Ellipse(ax-10,ay-10,ax+10,ay+10);
 Canvas->Ellipse(x-10,y-10,x+10,y+10);
 for(int i=0;i<Width;i++){
  Canvas->LineTo(i,i*k);
 };

}
I'm learning to live...

Последний раз редактировалось Stilet; 04.12.2009 в 09:58.
Stilet вне форума Ответить с цитированием
Старый 05.12.2009, 09:37   #9
Лубышев
Участник клуба
 
Аватар для Лубышев
 
Регистрация: 23.07.2007
Сообщений: 1,054
По умолчанию

Stilet, топикстартер хочет чтобы это желательно циклом нарисовалось (то есть каждую точку по отдельности) желательно. Написал бы но не знаю C++
Писано по д'Эльфийски
Лубышев вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
программа , круг элипс прямая на С++ Kript Помощь студентам 7 17.10.2022 18:56
Прямая линия serres Общие вопросы Delphi 1 04.11.2007 18:33
Прямая в пространстве Neuros1s Общие вопросы Delphi 12 29.06.2007 00:06
Прямая работа с оперативной памятью Alex_Vlad Общие вопросы Delphi 2 05.12.2006 16:29