|
Главная | Правила | Регистрация | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
![]() |
|
Опции темы | Опции просмотра |
![]() |
#1 (permalink) |
Новичок
Регистрация: 04.06.2011
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
![]() |
![]() |
![]() |
![]() |
|
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Похожие топики были созданы ранее, они могут вам хорошо помочь Корпорация Intel смотрит в сторону процессора с 1000 ядрами. Моддеры Нижнего Тагила, отзовитесь! |
![]() |
#3 (permalink) |
Новичок
Регистрация: 04.06.2011
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
![]()
В прямой четырехугольной призме провести сечение, проходящее через сторону нижнего основания под углом 30 градусов к основанию
Да в Турбо паскале с модулем Graph. Нужно само построение. |
![]() |
![]() |
![]() |
#4 (permalink) |
Banned
Регистрация: 01.09.2009
Сообщений: 4,396
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 2544
|
![]()
Однако. Я могу это реализовать, но не за "спасибо", к сожалению.
Наукоемкое это дело - сечения корректно строить. Последний раз редактировалось Long Cat; 04.06.2011 в 11:23 |
![]() |
![]() |
![]() |
#5 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,750
Записей в дневнике: 71
Сказал(а) спасибо: 162
Поблагодарили 200 раз(а) в 84 сообщениях
Репутация: 74843
|
![]()
Вот реализация построения сечения в цилиндре Помогите с задачкой по графике, для построения сечения в призме можете им воспользоваться
![]()
__________________
Убить всех человеков! |
![]() |
![]() |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
![]() |
#6 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,750
Записей в дневнике: 71
Сказал(а) спасибо: 162
Поблагодарили 200 раз(а) в 84 сообщениях
Репутация: 74843
|
![]()
Прямой призмой называется призма, у которой боковое ребро перпендикулярно плоскости основания, значит, углы при основании = 90 градусам. Судя по названию - в основании лежит четырехугольник.
Так как вы явно не указали, что именно лежит в основании, пойдем по пути наименьшего сопротивления, будем считать, что в основании лежит паралелограмм. в данном случае сечением будет выступать четырехугольник, одна сторона которого будет лежать на стороне нижнего основания, проивоположная сторона будет получена путем поворота плоскости нижнего основания на угол 30 градусов. Одним из свойств поворота является сохранения количества углов, следовательно сечение также будет являться четырехугольником. На экране его можно нарисовать как фигуру из 4 линий. Вам останется только явно указать длину сторон основания, ребра и произвести нехитрые вычисления координат вершин этой фигуры ![]() Дерзайте, учебник геометрии вам в помощь!
__________________
Убить всех человеков! |
![]() |
![]() |
![]() |
#9 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,809
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
![]()
Ну, вообще-то, ежели без аксонометрии, то не так уж это и сложно. На верхнем рисунке изображен произвольный прямоугольник, лежащий в основании призмы. Пусть секущая плоскость проходит через ребро АВ. Систему координат XYZ выберем так: Х параллелен ребру АВ, Y перпендикулярна X, тоже лежит в плоскости рисунка и смотрит вниз, Z (направление боковых ребер призмы) перпендикулярна плоскости рисунка и смотрит на нас. Все размеры при расчете заданы в пикселах графического DOS-экрана (640х480). Если за начало координат принять, как обычно, левый верхний угол экрана, то координаты вершин четырехугольника XY будут: A(100,150), B(200,150), C(240,50) и D(70,100). Так мне захотелось. Координаты вспомогательных точек E и F будут E(70,150) и F(240,150).
Теперь найдем координаты Z точек пересечения плоскости с боковыми ребрами, проходящими через C и D. Обозначим эти точки пересечения С1 и D1. Координаты составят ZC1=CF*tg30°, ZD1=DE*tg30°. Осталось теперь путем простейших манипуляций с теоремой Пифагора построить фигуру, лежащую в секущей плоскости. Что и сделано (нижний рисунок). Код:
Uses Graph, CRT; VAR ZD,ZC:Real; Function Tan(x:Real):Real; begin Tan:=Sin(x)/Cos(x); end; BEGIN InitGraph(..);{ПАРАМЕТРЫ ФУНКЦИИ ПОДСТАВЬТЕ САМИ} SetLineStyle(SolidLn,0,ThickWidth); Line(100,150,70,100); Line(70,100,240,50); Line(240,50,200,150); Line(200,150,100,150); SetLineStyle(SolidLn,0,NormWidth); Line(50,150,100,150); Line(200,150,260,150); SetLineStyle(DottedLn,0,NormWidth); Line(70,100,70,150); Line(240,50,240,150); SetTextJustify(CenterText,TopText); OutTextXY(70,155,'E'); OutTextXY(100,155,'A'); OutTextXY(200,155,'B'); OutTextXY(240,155,'F'); SetTextJustify(RightText,CenterText); OutTextXY(65,100,'D'); SetTextJustify(LeftText,CenterText); OutTextXY(245,50,'C'); ZC:=100*tan(Pi/6); ZD:=50*tan(Pi/6); SetLineStyle(SolidLn,0,ThickWidth); Line(100,400,70,400-Round(SQRT(SQR(50)+SQR(ZD)))); Line(70,400-Round(SQRT(SQR(50)+SQR(ZD))),240, 400-Round(SQRT(SQR(100)+SQR(ZC)))); Line(240,400-Round(SQRT(SQR(100)+SQR(ZC))),200,400); Line(200,400,100,400); SetTextJustify(CenterText,TopText); OutTextXY(100,405,'A'); OutTextXY(200,405,'B'); SetTextJustify(RightText,CenterText); OutTextXY(65,400-Round(SQRT(SQR(50)+SQR(ZD))),'D1'); SetTextJustify(LeftText,CenterText); OutTextXY(245,400-Round(SQRT(SQR(100)+SQR(ZC))),'C1'); SetFillStyle(3,white); FloodFill(150,350,white); ReadKey; CloseGraph; END. |
![]() |
![]() |
![]() |
#10 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,809
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
![]()
Впрочем, ладно - так уж и быть. Можно и с аксонометрией. Только вот не знаю, будет ли в том толк - подобные программы надо писать самому. Это куда легче, чем в чужих разбираться.
Код:
Uses Graph, CRT; VAR ZD,ZC:Real; Function Tan(x:Real):Real; begin Tan:=Sin(x)/Cos(x); end; BEGIN InitGraph(..);{ПАРАМЕТРЫ ФУНКЦИИ ПОДСТАВЬТЕ САМИ} SetLineStyle(SolidLn,0,ThickWidth); Line(100,150,70,100); Line(70,100,240,50); Line(240,50,200,150); Line(200,150,100,150); SetLineStyle(SolidLn,0,NormWidth); Line(50,150,100,150); Line(200,150,260,150); SetLineStyle(DottedLn,0,NormWidth); Line(70,100,70,150); Line(240,50,240,150); SetTextJustify(CenterText,TopText); OutTextXY(70,155,'E'); OutTextXY(100,155,'A'); OutTextXY(200,155,'B'); OutTextXY(240,155,'F'); SetTextJustify(RightText,CenterText); OutTextXY(65,100,'D'); SetTextJustify(LeftText,CenterText); OutTextXY(245,50,'C'); ZC:=100*tan(Pi/6); ZD:=50*tan(Pi/6); SetLineStyle(SolidLn,0,ThickWidth); Line(100,400,70,400-Round(SQRT(SQR(50)+SQR(ZD)))); Line(70,400-Round(SQRT(SQR(50)+SQR(ZD))),240, 400-Round(SQRT(SQR(100)+SQR(ZC)))); Line(240,400-Round(SQRT(SQR(100)+SQR(ZC))),200,400); Line(200,400,100,400); SetTextJustify(CenterText,TopText); OutTextXY(100,405,'A'); OutTextXY(200,405,'B'); SetTextJustify(RightText,CenterText); OutTextXY(65,400-Round(SQRT(SQR(50)+SQR(ZD))),'D1'); SetTextJustify(LeftText,CenterText); OutTextXY(245,400-Round(SQRT(SQR(100)+SQR(ZC))),'C1'); SetFillStyle(3,white); FloodFill(150,350,white); MoveTo(350,400); LineTo(450,400); LineTo(490+Round(100*Cos(Pi/6)),400-Round(100*Sin(Pi/6)+ZC)); LineTo(320+Round(50*Cos(Pi/6)),400-Round(50*Sin(Pi/6)+ZD)); LineTo(350,400); SetFillStyle(3,white); FloodFill(400,390,white); MoveTo(450,400); LineTo(490+Round(100*Cos(Pi/6)),400-Round(100*Sin(Pi/6))); LineTo(320+Round(50*Cos(Pi/6)),400-Round(50*Sin(Pi/6))); LineTo(350,400); LineTo(350,150); Line(450,400,450,150); Line(490+Round(100*Cos(Pi/6)),400-Round(100*Sin(Pi/6)), 490+Round(100*Cos(Pi/6)),150-Round(100*Sin(Pi/6))); Line(320+Round(50*Cos(Pi/6)),400-Round(50*Sin(Pi/6)), 320+Round(50*Cos(Pi/6)),150-Round(50*Sin(Pi/6))); MoveTo(350,150); LineTo(450,150); LineTo(490+Round(100*Cos(Pi/6)),150-Round(100*Sin(Pi/6))); LineTo(320+Round(50*Cos(Pi/6)),150-Round(50*Sin(Pi/6))); LineTo(350,150); SetTextJustify(CenterText,TopText); OutTextXY(350,405,'A'); OutTextXY(450,405,'B'); SetTextJustify(LeftText,CenterText); OutTextXY(495+Round(100*Cos(Pi/6)),400-Round(100*Sin(Pi/6)),'C'); OutTextXY(495+Round(100*Cos(Pi/6)),400-Round(100*Sin(Pi/6)+ZC),'C1'); SetTextJustify(LeftText,BottomText); OutTextXY(325+Round(50*Cos(Pi/6)),395-Round(50*Sin(Pi/6)),'D'); OutTextXY(325+Round(50*Cos(Pi/6)),394-Round(50*Sin(Pi/6)+ZD),'D1'); ReadKey; CloseGraph; END. |
![]() |
![]() |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
![]() |
Опции темы | |
Опции просмотра | |
|
|