الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

عمليات على المثلث

رائج
بدأه علاء الصالحي في 24 يونيو 2008 · 66 رد · 8,526 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

هذا برنامج بسيط للمبتدئين

البرنامج يأخذ 6 مدخلات والتي تمثل الإحداثايات الخاصة بنقاط المثلث

(x1,y1)

(x2,y2)

(x3,y3)

العمليات التي قمت بتصميمها

أ- هل الشكل يمثل مثلث

بالطبع النقاط الثلاث تمثل مثلت إلا في حالتين

1- تكرار نقطة

كأن تكون النقطة الثانية والثالثة بنفس الإحداثيات

2- أن تكون الثلاث نقاط على خط واحد

ب- أطوال الأضلاع

واستخدمت في هذه العملية المسافة الإقليدية لحساب الأضلاع

حسب المعادة التالية

إذا كان x يمثل المسافة بين النقطة الأولى والثانية

x=sqrt(pow(x1-x2,2)+pow(y1-y2))

ج- تصنيف المثلث إذا كان متطابق الضلعين

في هذه العملية أقوم بفحص الضلع

أقوم باستخدام العملية السابقة

وأقارن بين أطوال الأضلاع

د- تصنيف المثلثات على حسب زواياه

المثلث ينقسم على حسب زواياه إلى ثلاثة أقسام

إذا كان يحتوي على زاوية منفرجة فهو منفرج

إذا كان يحتوي على زاويه قائمة فهو قائم

وإلا فهو حاد

يكون المثلث منفرج

إذا كان مربع أحد الأضلاع أكبر من مبربعي الضلعين الآخرين

يكون المثلث قائم (نظرية فيثاغورث)

إذا كان مربع أحد الأضلاع يساوي مربعي الضلعين الآخرين

ويكون حاد إذا لم يتوفر أحد الشرطين السابقين

البرنامج يأخذ المدخلات من شاشة الدوس

ويأخذ أي عدد من المثلثات

بالطبع كل مثلث يتمثل في 6 مدخلات

مثال على المدخلات

0 0 0 4 1 2

1 1 1 4 3 2

2 2 2 4 4 3

3 3 3 4 5 3

4 4 4 5 5 6

5 5 5 6 6 5

6 6 6 7 6 8

7 7 7 7 7 7

أترككم مع الشيفرة

package triangle;

public class Triangle {
	private double x1;
	private double x2;
	private double x3;
	private double y1;
	private double y2;
	private double y3;

	public Triangle(double x1,double y1,double x2,double y2,double x3,double y3){
		this.x1=x1;
		this.x2=x2;
		this.x3=x3;
		this.y1=y1;
		this.y2=y2;
		this.y3=y3;
	}
	public boolean isTriangler() {
		if(x1==x2&&y1==y2||x1==x3&&y1==y3||x3==x2&&y3==y2)//not distnict
			return false;
		double[] lengths=lengths();
		if(lengths[0]==lengths[1]+lengths[2]||lengths[1]==lengths[0]+lengths[2]||lengths[2]==lengths[1]+lengths[0])//parallel
			return false;
		return true;
	}
	public double[] lengths() {
		double lengths[]=new double[3];
		lengths[0]=Math.sqrt(Math.pow(x1-x2, 2)+Math.pow(y1-y2, 2));
		lengths[1]=Math.sqrt(Math.pow(x2-x3, 2)+Math.pow(y2-y3, 2));
		lengths[2]=Math.sqrt(Math.pow(x3-x1, 2)+Math.pow(y3-y1, 2));		
		return lengths;

	}
	public String isScalene() {
		double lengths[]=lengths();
		if(lengths[0]!=lengths[1]&&lengths[1]!=lengths[2]&&lengths[0]!=lengths[2])
			return "scalene";
		else
			return "isosceles";
	}
	public String classify() {
		double lengths[]=lengths();
		double A=Math.floor(Math.pow(lengths[0], 2)+.00005);
		double B=Math.floor(Math.pow(lengths[1], 2)+.00005);
		double C=Math.floor(Math.pow(lengths[2], 2)+.00005);
		double D=Math.floor(Math.pow(lengths[1], 2)+Math.pow(lengths[2], 2)+.00005);
		double E=Math.floor(Math.pow(lengths[0], 2)+Math.pow(lengths[2], 2)+.00005);
		double F=Math.floor(Math.pow(lengths[1], 2)+Math.pow(lengths[0], 2)+.00005);
		System.out.println(A+"="+D);
		System.out.println(B+"="+E);
		System.out.println(C+"="+F);
		if(A==D||B==E||C==F)
			return "right";
		else if(Math.pow(lengths[0], 2)>Math.pow(lengths[1], 2)+Math.pow(lengths[2], 2)
				||Math.pow(lengths[1], 2)>Math.pow(lengths[0], 2)+Math.pow(lengths[2], 2)
				||Math.pow(lengths[2], 2)>Math.pow(lengths[1], 2)+Math.pow(lengths[0], 2))
			return "obtuse";
		else
			return "acute";
	}
	public static void main(String[] args) {
		for (int i = 0; i < args.length; i++) {
			double x1=Double.parseDouble(args);
			i++;
			double y1=Double.parseDouble(args);
			i++;
			double x2=Double.parseDouble(args);
			i++;
			double y2=Double.parseDouble(args);
			i++;
			double x3=Double.parseDouble(args);
			i++;
			double y3=Double.parseDouble(args);
			Triangle t=new Triangle(x1,y1,x2,y2,x3,y3);
			double[] lengths=t.lengths();
			for (int j = 0; j < lengths.length; j++) {
				System.out.println(lengths[j]+" ");
			}
			System.out.println();
			if(t.isTriangler()){
				StringBuilder s=new StringBuilder(" triangle");
				s.insert(0," " + t.classify());
				s.insert(0,t.isScalene());
				System.out.println(s.toString());
			}
			else
				System.out.println("not a triangle");
		}
	}
	public double getX1() {
		return x1;
	}
	public void setX1(double x1) {
		this.x1 = x1;
	}
	public double getX2() {
		return x2;
	}
	public void setX2(double x2) {
		this.x2 = x2;
	}
	public double getX3() {
		return x3;
	}
	public void setX3(double x3) {
		this.x3 = x3;
	}
	public double getY1() {
		return y1;
	}
	public void setY1(double y1) {
		this.y1 = y1;
	}
	public double getY2() {
		return y2;
	}
	public void setY2(double y2) {
		this.y2 = y2;
	}
	public double getY3() {
		return y3;
	}
	public void setY3(double y3) {
		this.y3 = y3;
	}

}

كالعادة يمكنك التعديل عليه كما تشاء

أو طرح أي أفكار لديك

إذا كان لديك فكرة عن طريقة أسهل لعمل أي دالة

فناقشها ليستفيد الجميع

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#2

رائع ..

جائنا اليوم بالامتحان السي شوربا عفوا الشارب :D

نفس هذا التكتيك ..عبارة عن خلق class لاحداثيي نقظة وكتابة التوابع الخاصة بها منRead ,Print,Set,Get,GetX,GetY

ومن ثم اشتقاق calss circle منها مستخدمين طبعا بالاضافة الى ذلك العناصر الخاصة بالـ Graphicse

لنرسم على ال Form يلي هوا من اختراع Microsoft (انا عارف من وين يجيبو هالاسامي) :D

احدثيي نقطة ..ثم الدائرة التي تريد النقطة الثانية وهما الازمتين لرسم دائرة ...

اذا ما رائيك سيد علاء باستخدام مفهوم الورائة لفيد كل مبتدا ..بان نقوم مثلا بانشاء class احداثيي نقظة بclass point


{
int x, y;
public TPoint()
{
x = y = 1;
}
public TPoint(int x1, int y1)
{
x = x1;
y = y1;
}
public TPoint(TPoint p)
{
x = p.x;
y = p.y;
}
public void ReadPoint()
{

}
public void PrintPoint()
{

}
public void SetPoint(int x1, int y1)
{
x = x1;
y = y1;
}
public int Getx()
{
return x;
}
public int Gety()
{
return y;
}

}
		public class TPoint

ونقوم بـclass Triangle بالـextends من class point

ونقوم بالــoverride لبعض الـmethod بالاضافة لانشاء احداث نقتطين فقط في ـclass Triangle

موضوع رائع ... فعلا يجب ان يكون مرجع لكل مبتدا برمجة ...

الله معك..

#3

لن نستفيد الكثير من وراثة النقطة في المثلث

لكن لنسهل الموضوع أكثر

سنستخدم الفئة نقطة التي قمت بعملها شادي

مع مفهوم الترابط composition

فيصبح عندنا بدل ست مدخلات

قد يتوه المبرمج في ترتيب الإحداثيات

ثلاث مدخلات

هل أقوم بعملها أم أن هناك من يريد التعلم؟

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#4

نعم الهدف من فئة النقطة فعلا علاء ليس اكثر من تخفيف زحمة لا اكثر ولا اقل

لكن انا احببت ان انوه لان هذا الموضوع اكثر من رائع ليس ببساطته ..بل تقوم عليه او على مبادئه مشاريع كاملة في رسم

الاشكال الهندسية ...

لي عودة

الله معك..

#5

السلام عليكم

يبدو لي أنه لا أحد يريد أن يتعلم

على العموم هاقد قمت بالتعديل المطلوب

وأنا أعمل لاحظت مشكلة لدي

في عملية التقريب في دالة classify

double A=Math.floor(Math.pow(lengths[0], 2)+.00005);

أتمنى أن يشاركوني المبتدئين في حلها B)

هذه الفئة مثلث

package triangle;

public class Triangle {
	private Point a;
	private Point b;
	private Point c;

	public Triangle(Point a,Point b,Point c){
		this.a=a;
		this.b=b;
		this.c=c;
	}
	public boolean isTriangler() {
		if(a.Getx()==b.Getx()&&a.Gety()==b.Gety()||a.Getx()==c.Getx()&&a.Gety()==c.Gety()||c.Getx()==b.Getx()&&c.Gety()==b.Gety())//not distnict
			return false;
		double[] lengths=lengths();
		if(lengths[0]==lengths[1]+lengths[2]||lengths[1]==lengths[0]+lengths[2]||lengths[2]==lengths[1]+lengths[0])//parallel
			return false;
		return true;
	}
	public double[] lengths() {
		double lengths[]=new double[3];
		lengths[0]=Math.sqrt(Math.pow(a.Getx()-b.Getx(), 2)+Math.pow(a.Gety()-b.Gety(), 2));
		lengths[1]=Math.sqrt(Math.pow(b.Getx()-c.Getx(), 2)+Math.pow(b.Gety()-c.Gety(), 2));
		lengths[2]=Math.sqrt(Math.pow(c.Getx()-a.Getx(), 2)+Math.pow(c.Gety()-a.Gety(), 2));		
		return lengths;

	}
	public String isScalene() {
		double lengths[]=lengths();
		if(lengths[0]!=lengths[1]&&lengths[1]!=lengths[2]&&lengths[0]!=lengths[2])
			return "scalene";
		else
			return "isosceles";
	}
	public String classify() {
		double lengths[]=lengths();
		double A=Math.floor(Math.pow(lengths[0], 2)+.00005);
		double B=Math.floor(Math.pow(lengths[1], 2)+.00005);
		double C=Math.floor(Math.pow(lengths[2], 2)+.00005);
		double D=Math.floor(Math.pow(lengths[1], 2)+Math.pow(lengths[2], 2)+.00005);
		double E=Math.floor(Math.pow(lengths[0], 2)+Math.pow(lengths[2], 2)+.00005);
		double F=Math.floor(Math.pow(lengths[1], 2)+Math.pow(lengths[0], 2)+.00005);
		System.out.println(A+"="+D);
		System.out.println(B+"="+E);
		System.out.println(C+"="+F);
		if(A==D||B==E||C==F)
			return "right";
		else if(Math.pow(lengths[0], 2)>Math.pow(lengths[1], 2)+Math.pow(lengths[2], 2)
				||Math.pow(lengths[1], 2)>Math.pow(lengths[0], 2)+Math.pow(lengths[2], 2)
				||Math.pow(lengths[2], 2)>Math.pow(lengths[1], 2)+Math.pow(lengths[0], 2))
			return "obtuse";
		else
			return "acute";
	}
	public static void main(String[] args) {
		for (int i = 0; i < args.length; i++) {
			double x1=Double.parseDouble(args);
			i++;
			double y1=Double.parseDouble(args);
			i++;
			double x2=Double.parseDouble(args);
			i++;
			double y2=Double.parseDouble(args);
			i++;
			double x3=Double.parseDouble(args);
			i++;
			double y3=Double.parseDouble(args);
			Triangle t=new Triangle(new Point(x1,y1),new Point(x2,y2),new Point(x3,y3));
			double[] lengths=t.lengths();
			for (int j = 0; j < lengths.length; j++) {
				System.out.println(lengths[j]+" ");
			}
			System.out.println();
			if(t.isTriangler()){
				StringBuilder s=new StringBuilder(" triangle");
				s.insert(0," " + t.classify());
				s.insert(0,t.isScalene());
				System.out.println(s.toString());
			}
			else
				System.out.println("not a triangle");
		}
	}
}

وهذه الفئة نقطة الخاصة بالأخ شادي عملت عليها تعديلات بسيطة

package triangle;

public class Point
{
	private double x;
	private double y;
	public Point()
	{
		x = y = 1;
	}
	public Point(double x1, double y1)
	{
		x = x1;
		y = y1;
	}
	public Point(Point p)
	{
		x = p.x;
		y = p.y;
	}
	public void ReadPoint()
	{

	}
	public void PrintPoint()
	{

	}
	public void SetPoint(double x1, double y1)
	{
		x = x1;
		y = y1;
	}
	public double Getx()
	{
		return x;
	}
	public double Gety()
	{
		return y;
	}

}

تحياتي

تم تعديل هذه المشاركة بواسطة alaadiaa في 8 يوليو 2008 في 16:00

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#6

علاء المواضيع ان لم يحصل تفاعل مباشر

سياتي يوم من يبحث عنها .. فوق هذا 140 مشاهده ماذا تسميه B)

اتمنى ان نرى مواضيع رياضيات جافا اكثر بالقسم ..

#7

مشكلتنا كعرب أننا نخاف المحاولة

ونرى أن الذي يخطأ تخرج له أذنان كبيرتان

حتى لو كانت هذه محاولته الأولى

شكراُ عيسى على المساندة

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#8

هذه مشاركتي بكود سي بلس .,, اسف جدا ان كان ممنوع وضع كود غير جافا .

#include <iostream>
#include <math>
#include <conio>
using namespace std;

struct point 
{
	int x;
	int y;
};

int main()
{


	point A,B,C;

start:
	cout<<"Enter A point:"<<endl;
	cin>>A.x; cout.width(2); cin>>A.y; 
	cout<<"Enter B point:"<<endl;
	cin>>B.x; cout.width(2); cin>>B.y;
	cout<<"Enter C point:"<<endl;
	cin>>C.x; cout.width(2); cin>>C.y; // A(x,y) B(x,y) C(x,y) 



	if(((A.x-B.x)==0 && (A.y-B.y)==0) || ((C.x-B.x)==0 && (C.y-B.y)==0) || ((A.x-C.x)==0 && (A.y-C.y)==0)) 
	{cout<<"It's Not Triangle.."<<endl;	goto start;}




	int lengths[2];
	lengths[0]=sqrt(pow((A.x)-(B.x),2)+pow((A.y)-(B.y),2));  // A----B
	lengths[1]=sqrt(pow((A.x)-(C.x),2)+pow((A.y)-(C.y),2));  // A----C 
	lengths[2]=sqrt(pow((C.x)-(B.x),2)+pow((C.y)-(B.y),2));  // B----C




	int fum=lengths[0]*lengths[1]*lengths[2];

  if ((lengths[0]==lengths[1]||lengths[0]==lengths[1] || lengths[1]==lengths[2]))
	 cout<<"\t"<<"Isosceles Triangles";




  if(fum==pow(lengths[0],3))
	    cout<<"\t"<<"Equilateral Triangle"<<endl;




 if(pow(lengths[0],2)==pow(lengths[1],2)+pow(lengths[2],2)
	  ||(lengths[1],2)==pow(lengths[0],2)+pow(lengths[2],2)
	  ||(lengths[2],2)==pow(lengths[1],2)+pow(lengths[0],2))
	  cout<<"\t"<<"Right Triangle";



   if(pow(lengths[0],2)>(pow(lengths[1],2)+pow(lengths[2],2)
		||(lengths[1],2)>(pow(lengths[0],2)+pow(lengths[2],2)
		||(lengths[2],2)>(pow(lengths[1],2)+pow(lengths[0],2)))))
	      cout<<"\t"<<"Obtuse Triangle";


   else cout<<"\t"<<"Acute Triangle";


	cout<<"\n\n";  cout<<"Segment[1]:"<<lengths[0]
	<<"\t"
		  <<"Segment[2]:"<<lengths[1]
	<<"\t"
		  <<"Segment[3]:"<<lengths[2]
	<<"\t"
		<<endl;

	 getch();
	 return 0;
}

تم تعديل هذه المشاركة بواسطة azeez00 في 13 يوليو 2008 في 08:46

سبحان الله , الله اكبر , ولله الحمد

#9

بصراحة المنتدى للجافا

إن كنت تريد المساعدة بالنسبة للغة السي++

فتوجه إلى قسمها

أما إن كنت تريد أن تسأل شيء عن الموضوع

مثلاُ كيف تتأكد من أن الشكل مثلث

فاطرح اسألتك

وبإذن الله نجيبك

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#10

كيفيه التعرف على المثلث هي : كما ذكرت اخ علاء , ولكني انا وضعت شرط بناء على متغيرات point x,y

if(((A.x-B.x)==0 && (A.y-B.y)==0) || ((C.x-B.x)==0 && (C.y-B.y)==0) || ((A.x-C.x)==0 && (A.y-C.y)==0))

طيب ما رايك بهذا الكود للتعرف على المثلث ,, هل لديك لي مساعده ؟ او تنبيه ؟

ما رأيك بطريقه وضع المتغيرات في struct والتعامل معها لحل هذه المسألة ؟

سبحان الله , الله اكبر , ولله الحمد

#11

:::::::::::::::::::::::::: مشاركه بخصوص معرفة المثلث من أضلاعه ::::::::::::::::::::::::::::

هل المثلث متساوي الاضلاع ؟

ام هو متساوي الساقين فقط ؟

ام هواضلاعه تختلف قياسها عن الاخرى ؟

؟!؟!؟!؟!!؟!؟!؟! كـــــــــيف نحل هذه المسائل برمجيا ؟!؟!؟!؟!؟!!؟؟!؟

::::::::::::::::::::::::: حل لمتساوي الاضلاع ::::::::::::::::::::::::: :x*x*x = x^3 :::::::::::

اذا كانت الاضلاع متساويه فإن مجموع ضربها يساوي مجموع اي ضلع تكعيب .

int fsum = L1*L2*L3;
if ( fsum=Math.pow(L1,3) 
{
System.out.println("Equilateral Triangle");
}

::::::: طريقه موحده لحل جميع الانواع بإستخدام المصفوفات ::::::::::::::

بفضل ربي , وجدت ان هناك علاقه بين الاصناف الثلاث

وهي انن سوف اقوم بطرح العدد على جميع الاعداد ( العدد = طول الضلع) وانه في حال كان هناك ضلعان متساويان سوف يكون الناتج صفر ,

وسوف ادخل الارقام الناتجه من العمليه في مصفوفه خاصه فيهم , واعمل بحث في هذه المصفوفه عن عدد الاصفار .

في حال كان عدد الاصفار = 2 اصبح المثلث متساوي الساقين

في حال كان عدد الاصفار = 6 اصبح المثلث متساوي الاضلاع

وإلا فإن المثلث غير متساوي الاضلاع

...	  
int Line[2];
int LineInput[6];
int n(0);

Line[0]=Math.sqrt(pow((A.x)-(B.x),2)+Math.pow((A.y)-(B.y),2)); // A----B
Line[1]=Math.sqrt(pow((A.x)-(C.x),2)+Math.pow((A.y)-(C.y),2)); // A----C
Line[2]=Math.sqrt(pow((C.x)-(B.x),2)+Math.pow((C.y)-(B.y),2)); // B----C


//---------------------------------------

LineInput[0]=Line[0]-Line[1];	
LineInput[1]=Line[0]-Line[2];
LineInput[2]=Line[1]-Line[0];
LineInput[3]=Line[1]-Line[2];
LineInput[4]=Line[2]-Line[0];
LineInput[5]=Line[2]-Line[1];

//-----------------------------------------	

	for(int i=0; i<6; i++)
			   {

								  if(LineInput==0)
			++n;
		   }

			   if(n==6)

		System.out.println("Equilateral Triangle");

						 else if(n==2)  

				 System.out.println("Isosceles Triangles")

								  else { System.out.println("scalene") }

}

تم تعديل هذه المشاركة بواسطة azeez00 في 16 يوليو 2008 في 12:15

سبحان الله , الله اكبر , ولله الحمد

#12

جميل أخي عزيز

سأنبهك إلى نقطة ربما لم تنتبه لها

المثلث يعتمد على قاعدة لا يمكن لأي ضلع أن يكون أكبر من الضلعين الآخرين

وعلى هذا يجب أن تفحص هذا المشكلة

لاحظ أنك في فحصك قصرت الفحص على هل النقاط نفس النقاط أم لا

على فكرة طريقتك في عملية الطرح

ثم المقارنة مع الصفر جميلة

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#13

الله يبارك فيك اخوي علاء ... الحقيقة النقطة التي اثرتها مهمه جدا شكرا على التنبيه .

انا وضعت جزء من حل مشكله ... وان تحديد المعطيات هل هيا نقاط مثلث ام لاء فالحل اعتقد انك وضعته اخ علاء في مشاركاتك .

هل هناك تكمله لهذا الموضوع ام انه توقف ؟! لاني بدات انسى ماكنت بديت به :)

سبحان الله , الله اكبر , ولله الحمد

#14

هل لديك علمليات تقترحها علي

وسنقوم ببحثها

أنا أريد أن أفتح نقاش

لا أن أكون أنا من يكتب كل شيء

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#15
alaadiaa كتب:
هل لديك علمليات تقترحها علي

وسنقوم ببحثها

أنا أريد أن أفتح نقاش

لا أن أكون أنا من يكتب كل شيء

تحياتي

:hmm:

إليك ما يدور ببالي الآن

1/دالة تخبرنا إذا كانت نقطة نحددها لها تقع داخل المثلث أو لا

2/ إنشاء المثلث ليس فقط بالاعتماد على إحداثيات الرؤوس و إنما بطرق أخرى:

أ- تحديد ضلع(نقطتين) و زاوية

ب-تحديد رأس واحد + أطوال الأضلاع الثلاثة

نبدأ بعمل هذه الدوال ... و سنفكر في أخرى بعد الفراغ من هذه

ما رأيك ؟؟

#16

بداية جيدة أخ djug

طيب نبدأ في الأولى

مارأيك في أن نقوم بالتالي

لدينا معادلات الخط المستقيم لأي مثلث إذا حسبنا الميل والجزء المقطوع من محور الصادات

y=ax+b

حيث a ميل المستقيم

b الجزء المقطوع من ص

لو قمنا بتوصيل خط من كل رأس للمثلث إلى النقطة الجديدة

يجب أن لا يتقاطع أي ضلع من المثلث مع الخطوط الجديدة

وعلى هذا ستكون النقطة داخل المثلث

نقطة جيدة

لكن كيف يمكن أن نعرف هل الخط يتقاطع مع أحد الأضلاع

جاري التفكير

هل من أفكار حول الموضوع؟؟

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#17

أعتقد أن هناك حلولا أفضل

نقارن إحادثيات النقطة المراد بحثها مع إحداثيات الرؤوس الثلاثة

أعتقد أنه توجد علاقة تجنبنا تعب التعمال مع معادلات المستقيمات أنا الآن أبحث فيها

#18

أخي علاء ما رأيك في الفكرة التالية لمعرفة إن كانت النقطة داخل المثلث:

نحسب معادلة المستقيم الخاصة بالمستقيم الحامل لكل ضلع

تكون النقطة داخل المثلث إذا و فقط إذا كانت:

*النقطة موجودة فوق ضلع واحد و أسفل ضلعين

* النقطة موجودة فوق ضلعين و أسفل ضلع واحد

كيف نعرف أن نقطة موجودة فوق مستقيم:

نضع إحداثيي النقطة في معادلة المستقيم و نحسب

إذاكانت النتجة سالبة فالنقطة فوق المستقيم و إذا كانت موجبة فهي تحت المتسقيم (و إذا كنت النتيجة 0 فإن النقطة تنتمي إلى المتسقيم :) )

ما رأيك ؟؟

#19

ماهو المستقيم الحامل للضلع؟

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#20
alaadiaa كتب:
ماهو المستقيم الحامل للضلع؟

تحياتي

المستقيم الذي يمر على رأسي الضلع

(أي لو مددنا الضلع فسنحصل على هذا المستقيم)

تم تعديل هذه المشاركة بواسطة djug في 9 أغسطس 2008 في 00:24

#21

ماذا تعني أخ djug

عندما تقول

هذه النقطة أعلى من هذا الخط

في بعض الأحيان تكون النقطة على اليسار أو اليمين فكيف تقول أعلى

في بعض الأحيان يكون الضلع مائلاً فكيف نقول أعلى

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#22
alaadiaa كتب:
ماذا تعني أخ djug

عندما تقول

هذه النقطة أعلى من هذا الخط

في بعض الأحيان تكون النقطة على اليسار أو اليمين فكيف تقول أعلى

في بعض الأحيان يكون الضلع مائلاً فكيف نقول أعلى

تحياتي

نقطة أ فوق المستقيم ∆:

لو رسمنا نصف مستقيم ابتداءا من هذه النقطة (أ)و يكون قاطعا و عموديا على محور السينات

فإنه يقطع بالضرورة المستقيم ∆

نقطة ب تحت المستقيم ∆:

لو رسمنا نصف مستقيم ابتداءا من هذه النقطة (ب)و يكون قاطعا و عموديا على محور السينات

فإنه لن يقطع أبدا المستقيم ∆

المستقيم الوحيد الذي لا يمكن أن تكون أية نقطة فوقه هو المستقيم الموازي لمحور الصادات

get-8-2008-26u7k69hc12.JPG

تم تعديل هذه المشاركة بواسطة djug في 9 أغسطس 2008 في 01:24

#23

جيد djug

ماذا عن حلك الآن

لو كان لدينا مثلث قائم الزاوية

فكيف يمكن أن نقول بأن نقطة ما داخله أو خارجه؟

لدي فكرة لكني لا أعلم كيف يمكن تطبيقها

مجموع الزوايا الناتجة عن توصيل نقطة داخل المثلث

مع رؤوس هذا المثلث تساوي 360 درجة

مجموع الزوايا الناتجة عن توصيل نقطة على ضلع واحد من أضلاع المثلث

مع رؤوس هذا المثلث تساوي 180 درجة

بينما لو كانت على ضلعين فهي أحد رؤوس المثلث

مجموع الزوايا الناتجة عن توصيل نقطة خارج المثلث

مع رؤوس هذا المثلث تساوي أقل من 180 درجة

لأنها تشكل زايا حادة دائماً

ما رأيك أخ djug؟

هل نستدعي أحد من قسم الرياضيات ليساعدنا؟

نقطة خارج الموضوع

على أي برنامج رسمت الرسمة السابقة؟

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#24

* لا مشكلة مع المثلثات القائمة ماهي إلا حالة خاصة من المثلث العادي

* نعم يفضل استدعاء متخصصين من قسم الرياضيات لمساعدتنا (أهل مكة أدرى بشعابها) و نهتم نحن بالجزء المتعلق بالبرمجة

* البرنامج المستعمل لرسم الرسم السابق MS Word 2003 :)

#25

ما شاء الله ... مشاركات جميله وافكار اجمل ..

الحقيقة مشكله تحديد النقطه هل هي خارج المثلث ام داخله .. نقطه جميله ومفيده جدا وتستدعى افكار مبرمجين حقيقيين .

وانا سوف اقرا المشاركات بتمعن ودقه .. وسوف اطرح فكرتي بوضوح .. وان شاء الله نصل الى حل لهذه المشكله

سبحان الله , الله اكبر , ولله الحمد

مواضيع مشابهة