Thariel Geschrieben 17. November 2018 Melden Share Geschrieben 17. November 2018 Hi Ich habe eine mathematische Frage und weiss gerade nicht, wie ich das am besten Löse und weiss auch nicht, nach welchem Begriff ich suchen könnte. Im Spiel kann man Fischfallen bauen. Eine Falle fängt 10 Fische pro Tag. Wenn man zwei fallen direkt nebeneinander baut, fängt man aber natürlich nicht 20 Fische, weil die Menge an Fisch im Ozean begrenzt sind. Eine Falle hat eine Effektifität von 100%. Zwei Fallen nebeneinander eine Effektivität von 66% (100/1.5). Die Effektivität nimmt mit der Distanz aber wieder zu. Ab 30m Distanz, ist die Effektivität wieder 100% (100/1). Also Distanz: 0<---------------------------------------->30 Effektivität: 1.5<---------------------------------------->1 Das heisst, bei einer Distanz von 15m. wäre die Effektivität beider Fallen bei 80% (100/1.25) und würden zusammen 16 Fische fangen, statt 20. Meine Fragen: Wie nennt man diese Art von Berechnung, wonach müsste ich suchen? Gibt es dafür in Unity oder C# eine Funktion? Wie berechne ich das genau, dass ich die Effektivität erhalte, wenn ich die Distanz kenne? Danke schon mal Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
malzbie Geschrieben 17. November 2018 Melden Share Geschrieben 17. November 2018 Kommt jetzt drauf an, wie die Kurve aussieht. Könnte ein Logarythmus sein oder ein Wellenfunktion wie Sinus oder Cosinus. Such nach Mathf.Log bzw. Log10 oder Sin oder Cos und nimm einen von dir festgelegten Bereich innerhalb der Kurve. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Thariel Geschrieben 17. November 2018 Autor Melden Share Geschrieben 17. November 2018 Es ist keine Kurve, sondern Linear/Proportional. Schaue mir das mal an, aber ich glaube Log/Log10 fällt schon mal weg. Distanz 0 = Effektivität 1.5 //Alle Zwischenschritte Distanz 15 = Effektivität 1.25 //Alle Zwischenschritte Distanz 30 = Effektivität 1 EDIT: Ich glaube ich habs jetzt raus! Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
malzbie Geschrieben 17. November 2018 Melden Share Geschrieben 17. November 2018 Jo, es ist schon so lange her mit Mathe. Aber im Endeffekt hast du nur ne Scalenverschiebung. Ich würde es so machen: Als erstes abfragen ob du nicht außerhalb der Maximaldistanz bis (deine 30 Meter wo eh 100% erreicht sind). Wenn ja, einfach mit 100% rechnen. Wenn nein folgende Berechnung durchführen. Effektivpunkt= posi (z.b.12m) / maxPosi (die 30m) //ergibt 0.4 Effektbereich = maxwert (1.5) - minimalwert (1) // ergibt 0.5 Effektivitaet= maxwert- Effektivpunkt*Effektivbereich // ergibt 1.3 weil 1.5 - 0.4*0,5 100/Effektivitaet= rund 76.9% Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Thariel Geschrieben 17. November 2018 Autor Melden Share Geschrieben 17. November 2018 Ja genau 🤣 Habs jetzt so ähnlich gemacht: float effLoss = (distance / 30.0F) * 0.5F; effLoss = 0.5-effLoss; effLoss++; //jetzt ist effLoss zwischen 1-1.5 in Relation zu den 0-30m Danke nochmals Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 18. November 2018 Melden Share Geschrieben 18. November 2018 Nur so der Vollständigkeit halber: Der Begriff dafür ist "Dreisatz" Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Archiviert
Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.