Bir grafik sorusu

Başlatan burç tankal, 01 Ağustos 2017, 01:47:28

burç tankal

Arkadaşlar elimde (x1,y1) başlangıç noktası ve (x2,y2) bitiş noktası bilinen bir doğru var. Bu iki nokta arasında kalan ve x değeri bilinen bir noktanın y değerini nasıl hesaplayabilirim?

baran123

Öncelikle bu doğrunun denklemini çıkartın.
Daha sonra problem basit bir f(x) = y Sorusuna dönüşür. Daha sonra buradan x'i vererek fonksiyon ile y'yi elde edersiniz.



burç tankal

Bu işlemi algoritma içerisinde nasıl yapacağım konusunda takıldım. Aslında ihtiyacım olan şöyle hazır bir formul:

y= ( x1+blablabla / y2.blablabla ) x-blablabla+x2

:) sanırım derdimi anlatabildim.

baran123

#3
İki noktası bilinen doğrunun denklemi şu şekilde bulunur.


Gerçi siz direk kodu istiyorsunuz oda bu şekilde olabilir. Ben değerleri float yaptım siz optimize edebilirsiniz.
#include <stdio.h>

// A(x1, x2) B(x2, y) olmak üzere 2 nokta
// x ise y'si bulunacak değer
float Line_Gety(float x1, float y1, float x2, float y2, float x)
{
    float y;
    
    y = (((y2-y1) * (x - x2)) / (x2 - x1)) + y2;
    
    return y;
}

int main(void) 
{
    float f = Line_Gety(3, 0, 0, 2, 2);
    
    printf("Y = %3.3f", f); // f = 0.667 = 2/3
    
    return (0);
}


burç tankal

İletiniz altındaki kodu görmemişim. Ben de denkleminizden resimdeki formülü çıkartmaya çalışıyordum. Sanırım aynı noktaya ulaşmışım. Bu formül sadece doğrusal grafikler için geçerli değil mi? Örneğin ntc'lerin sıcaklık/direnç grafiği gibi doğrusal olmayan grafiklerde işe yaramaz sanırım?
Tekrar çok teşekkür ederim.



baran123

Yaramaz.
Lineer olmayan grafikler için senin o grafiğin fonksiyonun bilmen gerekir.
Çünkü y = f(x) :)
f(x) yok ise y de bulunamaz.
Tam olarak ne yapmak istiyorsun ?
Belki yardımcı olabilirim.


burç tankal

Tam olarak yapmaya çalıştığım şeyi formülünüz ile başardım. Bilinen değerler ile giriş yaptığımda doğru çıktıyı aldım. Linear olmayan grafiği sadece meraktan sormuştum. Yardımınız için çok teşekkür ederim. Elektronikçi adam böyle sorular da sorar mı demeyin, lisansım psikoloji üzerine :)

burç tankal

Bir de tekrar meraktan soruyorum: bu formül ile iki noktanın arasında olmayan fakat doğrunun üzerindeki uzak bir x için y'yi de bulabilir miyiz?

baran123

Bulunur. Nasıl olsa doğrunun denklemini biliyoruz.
Estağfurullah hocam. Unutulur tabiki böyle şeyler. :)